惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
H
Heimdal Security Blog
罗磊的独立博客
B
Blog RSS Feed
WordPress大学
WordPress大学
The Register - Security
The Register - Security
N
Netflix TechBlog - Medium
美团技术团队
量子位
GbyAI
GbyAI
Recent Announcements
Recent Announcements
博客园 - 叶小钗
D
DataBreaches.Net
S
SegmentFault 最新的问题
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Troy Hunt's Blog
The Last Watchdog
The Last Watchdog
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
Webroot Blog
Webroot Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
V
V2EX
N
News and Events Feed by Topic
Jina AI
Jina AI
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
IT之家
IT之家
C
Check Point Blog
H
Hacker News: Front Page
爱范儿
爱范儿
Schneier on Security
Schneier on Security
Apple Machine Learning Research
Apple Machine Learning Research
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 最新话题
Forbes - Security
Forbes - Security
人人都是产品经理
人人都是产品经理
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
The Cloudflare Blog
Simon Willison's Weblog
Simon Willison's Weblog
Stack Overflow Blog
Stack Overflow Blog
腾讯CDC
MongoDB | Blog
MongoDB | Blog
V2EX - 技术
V2EX - 技术
AI
AI

博客园 - 早班火车

很还念这里。。。说些什么呢。。。 程序,好亲切~ IE与DOM下访问内联样式和外部样式表的常用方法总结 关于javascript中的事件学习及总结 总结了几个常用的sql server系统表的使用 在做一个小网站的一些心得与遇到的问题总结,为以后方便查阅。 用sql脚本一条条导数据的两种方法,需返回唯一标识@@IDENTITY作为插入到第二个表用。 一步一步教你抓数据——用.net精确提取网站数据的通用方法 关于IE缓存和AJAX的一点思考和疑问 退一步海阔天空:抛开思维定势 DOCTYPE:你可能不知道的 我的2007--从2008做起,加油! javascript常用验证 正则表达式参考手册__Mini版 树的操作(绑定数据库,添加新节点,删除节点)(转载加实现) 一段好用的ajax和div漂浮显示效果实现 ajax小贴士 好用的缓存类 javascript操纵剪贴板
也来为自己的博客加个花,兼AJAX跨域的一点疑问。
早班火车 · 2008-01-18 · via 博客园 - 早班火车

     最近看了园子里许多朋友的博客,觉得他们都做得很好,写的也很好。学习了。
也看了Justin Young的一篇随笔JavaScript,咱也OO一把很不错,受了启发,有点想法,
也打算加一个类似本月最新随笔的东东,顺便也练练javascript。

 在这里取得是本人博客的RSS,然后取出本月的随笔作为最新随笔,
地址为 http://www.cnblogs.com/junyistar/rss
1程序里先构造XMLHTTPRequest

构造XMLHTTPRequest

2接着发送请求并处理返回(callserver函数),updatePage函数返回更新。

callserver函数

在CallServer里面遇到了有一个让我头疼的问题,关于javascript跨域的问题,
本来程序只请求了一个URL,为http://www.cnblogs.com/junyistar/rss
以www.cnblogs.com域名进来的访问我的网址没有问题,新随笔能正确显示。
如图
本月随笔

但是我本人经常以junyistar.cnblogs.com的域名进来,浏览器就会判断成是不同的域名,
IE就会报没有权限的错误。
问题就在于junyistar.cnblogs.com与www.cnblogs.com的父域相同,但浏览器里可能出于安全考虑会认为是两个域
并且不容许跨域访问。
首先想到固定域名的方法,即在head区域加上
<script language="JavaScript">
<!--
document.domain = "cnblogs.com"; //指定 document 所属的域
-->
</script>
实验结果:失败~
上网查到原因:只有把上面的声明加入到需要进行数据交换的所有文件中才会有效,只在一个域的文件中加入上面的声明是不起作用的。所以我单方面加这个是不起作用的。pass。

转而上网又查了常用的跨站访问的方法,常用的有3种:
1在同一域的服务器端建立一个代理,浏览器向该代理网址发送请求,
然后该代理向其他域的网址发请求,在获取回复后,或作处理或按原样发回到浏览器 。  
2使用按需(On-Demand) Javascript 脚本。在页面内动态生成新的<script>,将其src属性指向别的网站的网址,
这个网址返回的内容必须是合法的Javascript脚本,常用的是JSON消息。   
3使用IFRAME。在页面内嵌或动态生成指向别的网站的IFRAME,
然后这2个网页间可以通过改变对方的anchor hash fragment来传输消息。

感觉前两个都需要服务器端做返回页面的操作,然后转而以我的理解用第三种操作,
就是在页面里嵌入一个指向我自己rss的iframe
如下:<iframe src="http://www.cnblogs.com/junyistar/rss" width="0" height="0" name="junyistar" id="junyistar"/>
这样应该不会有跨域的问题了,然后试图用dom操作取得iframe里的内容
window.frames[0].document.body.innerHTML allgetElementsById("feedTitle");
结果在firefox下调试的时候,又告诉我没有操作的权限,可是监视的时候又可以看到iframe里的内容。
如图:

实验结果:失败~
原因:未知。(小弟才疏学浅,等待园子里的朋友指点

最后采取了这中方案,绕过跨域问题
在程序里加判断
        var domain = "www.cnblogs.com";
        if(window.location.host != domain)
        {
            url = "http://junyistar.cnblogs.com/rss";
        }
        else
        {
            url = "http://www.cnblogs.com/junyistar/rss.xml";
        }

留下的疑问:
在没有操作服务器端权限的情况下,脚本真的能做的跨域么?

3最后是updatepage函数,里面是些常用的dom操作,返回数组
myArticle是个对象数组,里面存的是我这一个月的最新随笔。

updatepage函数,返回存好的随笔

在这里借鉴了JustinYoung的对象函数,小改了一下加以实现,原理差不多,
也算练练oo吧,本人也老避而远之的呵呵,要写的不好的地方还希望多多指正,以后还得多向园子里的前辈们学习。

构造函数+prototype

5其他是一些共有的变量和函数我声明在头部

公共变量

6最后用addLoadEvent函数加载启动事件。
这个函数是我在dom scripting书上学到的,它为将在页面加载完毕时执行的函数创建一个队列。
如果再加载函数只需写这样一句
addLoadEvent(firstFunction);
addLoadEvent(secondFunction);
这个函数在代码变得复杂的时候就显出他的作用来了,
无论打算在页面加载完毕时执行多少个函数,都只要多写一条语句就可以搞定了。

addLoadEvent

总结:
1关于脚本跨域。
留有一点遗憾,现有的水平还没能解决这个问题。
其实还有一种情况就是输入http://cnblogs.com/junyistar访问时IE又认为是不同的域了,这时脚本又会报错了。
这种情况我没有处理,因为一般只有手动输入的情况才回发生。
也留有一点疑问:在没有操作服务器端权限的情况下,脚本真的能做的跨域么?
2关于OO。
构造函数+prototype的组合,
就我自己目前用的,觉得这是一种很好的写javascript类的方法。
看过mootools的class类,那里的面向对象类写得真是精彩,用的也方便。也有很多不懂的地方,持续学习之。。。
3关于本例子。
呵呵其实也是受启发随便写来给自己的博客加个花。
RSS只是个形式,你可以调用任何你想的到的东东放在上面。
在上面代码里面涵盖了我的一些理解,望园子里的高人们不要见笑啊,欢迎板砖之。
4脚本我都放在下面的图片连接里了,又兴趣的朋友可以自己下来看看。欢迎指正。

requestarticles.js
global.js(addLoadEvent函数)