完美调用新浪新闻的简单方法
发表时间: July 29, 2008 分类: WebBuild 7条评论
早段时间叫我同学帮忙看看南华校友网,看看大家需要些什么样的功能,有个朋友说应该加个新闻的功能。
我当时就准备做个rss聚合来获取新浪搜狐的新闻的,后面就去找新浪新闻的RSS地址,然后无意找到新浪还有这个:http://rss.sina.com.cn/my_sina_web_rss_news.html?url=news/marquee/ddt.xml 可以直接调用新浪的新闻的,所以就放弃了再去写个RSS聚合了,呵呵。
然后马上就布置到南华校友网,因为我一直都是使用的Firefox ,测试也一开始是在Firefox上测试的,一切很好。然后是opera,也很好。最后IE,啪,不行了!老是弹出一个警告框提示页面无法打开,我当时就郁闷,一时也不知道是怎么回事。
我开始以为是我的IE出现了问题(因为基本上只有测试网页兼容和上工行支付宝才会用到IE),因为太久没用它,它给我闹脾气,然后在同学的IE上打开看,也是一样的问题。
于是就打开新浪提供的js地址看,看到在182有这样一句:
document.body.insertBefore( js, null);
而这里在我的网页上,UCH页面我调用了头尾模板,所以在新浪新闻调用之后及</body>标签之前还有内容需要载入的,此时</body>也没有载入,所以上面的代码才会在IE下出现错误。一种解决方法是可以判断页面载入完成了之后在执行这个操作,也可以将上面的语句改成类似:
document.getElementById("n_news").appendChild(js);
n_news是放js调用代码的div容器的id,这样就可以使页面内部数据照代码的顺序执行。
新闻调用的演示页面:http://www.nanhuau.com/news.php
还有,大家可以在调用的时候296行的:
code>document.getElementById(rss_news_sina_div).style.height = rss_news_sina_hight;code>
注释掉,因为这样才能自适用高度,至于宽度希望大家还是指定下,至于使用原新浪的方式还是自己的CSS那就看自己的喜好了,呵呵。
如果不想实用新浪指定的那些样式,可以将SinaRSSWriteCSS这整个函数去掉就可以了
然后将这个js文件保存上传到你的空间上,引用的时候替换新浪的路径到你的路径就可以了。
付:UCHome新闻速递插件下载(随便写的,功能比较简单,除上面说的调用新浪的新闻外,另加了百度的关键词新闻),演示地址在上面写出了,有需要的朋友就下着用吧
下载地址:http://www.iveshuo.cn/d/uchome_news_plug.7z


已有 7 条评论
#1 http://lijian.myopenid.com/ Says:
July 30th, 2008 at 03:40 pm
��
#2 xinjuechen11 Says:
August 18th, 2008 at 09:38 am
靠!!还是我的提议好吧!!
#3 luotuo Says:
August 23rd, 2008 at 12:33 pm
老大,我是菜鸟,用你的办法还是不行啊,你说的n_news要自己定义吗??
#4 阿肆 Says:
August 23rd, 2008 at 10:57 pm
@luotuo:恩,那个是自己文件中的id。
#5 小白 Says:
September 26th, 2008 at 01:05 pm
阿肆你好,我在琢磨RSS订阅的事,正好看到你的代码,很受用。
但是提供的地址无法下载,可否另提供新址?或mail给我?
感谢:)
#6 阿肆 Says:
September 26th, 2008 at 02:40 pm
@小白:我上面提供的方法不是用RSS的,纯js调用了。
那个提供下载的文件是在uchome中添加获取新浪新闻用到的文件,如果你也要用到可以参考下。
下载的问题,不知道服务器怎么就不认7z的文件了,我将后缀改了下,你从http://www.iveshuo.cn/d/uchome_news_plug.rar下载就可以了,下载后将后缀改回7z解压缩就可以了。
#7 小白 Says:
September 27th, 2008 at 02:39 pm
谢谢阿肆,收到了,我看完了再和你探讨,感谢分享:)
添加新评论