标签 DOM 下的文章

天涯只看楼主的脚本

发表于 WebBuild

不是经常去天涯,刚才在天涯找了个文章,是楼主连载的,我想只看楼主,发现在天涯这个功能居然是收费的!没办法,万能的“猴子”出场了。

下面是js代码:

var author=document.getElementById('firstAuthor').getElementsByTagName('a')[0].innerHTML; //获取楼主id
var cont=document.getElementById('pContentDiv').getElementsByTagName('table'); //获取回复
for(var i=1;i<cont.length;i++){
if(cont[i].getElementsByTagName('a')[0].innerHTML!=author){
cont[i].style.display='none'; //隐藏非楼主的帖子作者信息
var nextn=cont[i].nextSibling;
/*隐藏非楼主帖子*/
do{
if(nextn.nodeName=='#text'){
nextn.nodeValue='';
nextn=nextn.nextSibling;
}else{
nowbr=nextn;
nextn=nextn.nextSibling;
nowbr.parentNode.removeChild(nowbr);
}
}while(nextn.nodeName!='TABLE');
}
}

写到这里之后,和同学说,同学直接道将URL的“t”改成“o”就可以了,汗个~自己太愤青,忘记最快的路——问google了。于是去google了下,发现原来淘宝UED的空帷大哥早就写了这个greasemonkey脚本了,功能已经很完善了,我就不再写了(不过空帷大哥用正则判断的,我用DOM直接操作),哈哈!建议有需要的朋友直接去拿吧,呵呵。

完美调用新浪新闻的简单方法

发表于 WebBuild

早段时间叫我同学帮忙看看南华校友网,看看大家需要些什么样的功能,有个朋友说应该加个新闻的功能。

我当时就准备做个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