嘟嘟老窝

上帝给了我一双黑色的眼睛,我却用它来翻白眼......

导航

« 开始我的Java之路 从硬到软——互联网划时代的标志 »

将OPML中的Blogger快速推荐到特色中文Blogger

中文网志年会准备的如火如荼,并提倡大家通过del.icio.us推荐自认为有特色的Blogger,这个方法很好,在我订阅的Rss中有很多Blogger我都想推荐,可惜一个一个添加太麻烦了,灵机一动就做了这么一个小工具。

只要使用Rss的人一般都会订阅自己认为价值高有特色的Blog,所以参考自己的opml文件进行推荐是最方便的,我这个小工具就是通过Bloglines的opml文件自动罗列出你订阅的所有Feed,然后点一下按钮就会自动添加Blog地址到del.icio.us下,并加注cnbloggercon这个标签

使用方法:

  1. 先复制下这个输入框内的所有代码
  2. 打开BlogLines首页(其他页面亦可,但是不要用那个feed阅读页面,因为这个页面是个框架页面,懒得再从代码上修改支持框架了)
  3. 把1中拷贝下来的代码粘贴到当前Blogline页面的地址栏中,拍个回车就耐心等着吧,如果弹出del.icio.us的登录框,输入del.icio.us的帐号和密码即可。
  4. 等页面Load完就能看见opml文件中所有的feed列表,有一个Add Blogger按钮,点击就能添加到del.icio.us中了,注意,这里使用的是iframe,所以点击后应该在地址栏能看见有Load的进度,等进度100%了在点击下一个,页面的右上角能看见那个iframe窗口,内容就是发送添加书签命令给del.icio.us后得到的反馈结果。

实现方法其实很简单,主要使用了XMLHttpRequest远程从http://www.bloglines.com/export这个url中读取到opml文件,并通过DOM对这个xml文档进行遍历,找出所有有效节点并罗列出来。往del.icio.us里添加书签我用iframe实现的,用AJAX当然最好,只是跨域问题实在没办法解决了,这个小工具用了Johnvey Hwang的客户端代理技术,即通过javascript:命令结合url实现欺骗性质的跨域操作,但这也只能跨一个域,向我这个即用Bloglines又用del.icio.us,实在没办法了,只能用iframe了。

当然,你必须是del.icio.us和bloglines的注册用户,最好都已经保存cookie在当前你操作的机器上,不然可能会出现问题。目前只支持BlogLines的feed,对于其他用户,比如toPim用户,只要用了规范的opml格式,都能实现的。浏览器我也测试了,IE和Firefox都没问题

源文件只有一个JS文件:http://www.duduwolf.com/test/opml2blogger.js

  • 该日志的引用地址:
  • http://www.duduwolf.com/cmd.asp?act=tb&id=190
  • 1.宇蠢 | (home)
  • #duduwolf#
    麻烦更改一下我的链接地址
  • 2005-7-17 21:42:36
  • 3.zx.asd | (home)
  • 我觉得你是不是开个留言页专门处理这些事,另外你的网好象有时上不去.
  • 2005-7-17 23:30:45
  • 4.duduwolf | (home)
  • 是啊,最近赢政的服务器受Dos攻击,IIS资源严重不足,导致经常重启IIS。我决定换个主机,这个是人家免费赠送,有牢骚也不好发,只是换了域名就无法用duduwolf.winzheng.com这个域名了,有点可惜
  • 2005-7-17 23:35:54
  • 5.94smart | (home)
  • “javascript:命令结合url实现欺骗性质的跨域操作,但这也只能跨一个域”,这个是怎么实现的?只是在打开页上的地址栏使用script吗?还有其他方法可以跨域操作xml吗?

    另外这个代码执行时出错了。
    行:86
    字符:5
    代码:0
    错误:缺少对象
    网址:http://www.bloglines.com/
  • 2005-7-17 23:44:48
  • 6.duduwolf | (home)
  • 你用的啥浏览器和操作系统啊?从出错行来看是因为xml文档返回的是null值无法找到子节点而导致错误的,也就是说opml文件没下载下来或者是你的机器不支持程序里给出的那几个XMLhttp组件调用。

    一定要先打开www.bloglines.com域名下的一个页面才行,打开并装载完这个页面后,浏览器当前的域就属于www.bloglines.com了,所以才能在程序中用xmlhttp组件get方式获取www.bloglines.com/export这个url的内容,取到opmle内容后程序用xml遍历的方式提取出所有有效的rss feed节点并完成页面显示,当点击每一个"Add Blogger"按钮往del.icio.us发送Add命令时就无法使用xmlhttp了,因为当前域属于bloglines,所以无法往其他域名下的地址发送get或者post请求,发送的话一般会给出“无访问权限”的错误提示,这就属于跨域操作了。

    不过xmlhttp在本机调用,即用操作系统的文件系统路径调用时就不存在跨域问题了,任何一个站点都能发送命令,好像是只能在文件系统路径下的页面中使用xmlhttp没有限制,即使你用http://localhost/或http://127.0.0.1/都不行
  • 2005-7-18 0:23:42
  • 7.isaac | (home)
  • dudu, thanks, may we have more ideas to work together? just email me to talk how to apply AJAX to this conference.
  • 2005-7-18 11:19:42
  • 8.94smart | (home)
  • 我用的是遨游Maxthon,我是先到bloglines的首页,且页面已经有cookie了。

    最近正在研究如何尽量不用程序来完成远程调用,到现在基本都是失败的,有空要多多请教了~
  • 2005-7-18 11:50:16
  • 9.duduwolf | (home)
  • to isaac: OK, i fell very glad about make contributions to this meeting, answer your letter in the afternoon.
  • 2005-7-18 12:21:35
  • 10.airblue | (home)
  • 我用你的方法试了一下,等了N久了还是LOADING......Bad surprise
  • 2005-7-18 18:54:19
  • 11.zx.asd | (home)
  • 用hta文件好象可以克服跨域问题
  • 2005-7-20 2:00:09
  • 12.EVA剑心 | (home)
  • 我想要一份你的greatnews
    rss订阅列表
    可以给一份我吗?
  • 2005-7-21 22:46:13
  • 15.EVA剑心 | (home)
  • 是发到我的gmail上吗?我去查了下没有收到啊
    可以再发一次么?
  • 2005-7-23 1:34:33
  • 19.rssexpress | (home)
  • 用RSS订阅新闻聚合,用OPML管理RSS订阅,用手机阅读OPML,随时随地获取即时信息
    RSS快车 http://www.rss-express.com
  • 2007-6-25 10:15:50

反向链接列表

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

<< 2008·1 >>

Sun

Mon

Tue

Wen

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Search

Powered By Z-Blog 1.4 SP1 Build 50824 - modify by duduwolf

Copyright 1999-2005 duduwolf.com Some Rights Reserved.