关于IE动态加载script的几个注意点

用js动态链接一个外部的js文件,很简单:

var script = document.createElement (“script”);
script.src = “XXX.js”;
document.getElementsByTagName(“head”).item(0).appendChild (script);

但是一个注意的地方是,其实在IE下,执行到script.src = “XXX.js”;这一句代码时,IE已经去加载script代码了,但是不会执行链入的js代码,必须等到插入到document中后,才会执行,而在标准浏览器下,则是在执行插入到document中的代码时才会去加载外部js文件。所以需要注意的是,但你使用了jQuery等第三方js库进行插入的时候尤其要注意,这会导致IE下有两次请求。

本人在IE6,IE9,IE10下亲测IE存在这个问题。

这个网友还对在script标签中设置了src属性,但是script标签对内有内容时浏览器如何处理的问题进行了研究,并通过查找了相关标准给出了答案。

HTML4标准

If the src attribute is not set, user agents must interpret the contents of the element as the script. If the src has a URI value, user agents must ignore the element’s contents and retrieve the script via the URI

文中还提到HTML5标准对动态修改已经存在的script标签的src属性时浏览器应如何处理

Changing the src, type, charset, async, and defer attributes dynamically has no direct effect; these attribute are only used at specific times described below.

文中指的网友文章地址 http://www.w3ctech.com/p/1141,具体内容大家还是看这位网友的原文。

jquery的jsonp请求的callback不能重复执行

如题,今天遇到一个jsonp的问题。和服务器有一个交互的过程,每次交互,都要从服务器去一段数据,并分析数据从而进行下一次的请求。同时这个服务器和当前php程序所在地服务器并非同源。

通过协商,服务器那边的返回结果格式如下

jQuery17105991549867037437_1353939516854(“<xml id=’111111111111111′>ksdfksd</xml>”);

jQuery17105991549867037437_1353939516854(“<xml id=’2222222222222222222′>ksdfksd</xml>”);

其中 jQuery17105991549867037437_1353939516854 是jQuery自动生成的回调函数名。

我在当前html页面的回调函数内设置在控制台输出接受到的参数。按照正常思维,输出应该是

<xml id=’111111111111111′>ksdfksd</xml>

<xml id=’2222222222222222222′>ksdfksd</xml>

但是实际输出的是<xml id=’2222222222222222222′>ksdfksd</xml>。只有第二个回调函数执行了。

 

但是,如果用原生的javascript插入script标签,则callback函数会执行两次。所以估计是jQuery封装所致,目前不知原因,网上亦没有搜到相关内容。所以我打算研究下jQuery源码,一探究竟。到时再补上原因。

 

SkyDrive的bug?!

昨天用SkyDrive传了两本txt的电子书,客户端一直显示在同步,但是一直没有显示成功。软件一直处于下图所示的同步状态,而且也不现实具体同步的进度。

我当时也没在意,以为是网络不稳定(你懂的!)。

但是今天仍然不能同步,于是我登陆网络版,试图利用浏览器在线上传文件。出现了如下的弹窗

这个弹窗终于让我知道是一位文件名中包含了“:”这个特殊字符。但是奇怪的是,这是一个中文的冒号。总所周知,在windows系统中文系统的Explorer中,文件名不能包含的是英文冒号“:”,但是用户是能建议包含中文冒号的文件名的,不知道为什么到了微软禁止上SkyDriver上传包含中文冒号的文件名的文件。最为过份的是客户端没有一点提示。

[优酷视频]顾莉雅唱的“毕业那年”插曲“寂寞花火”! (附带此间的少年MV)

电影“毕业那年”的插曲,尤其是看多电影后,觉得特别好听。

“幸福是什么?幸福就是看到希望!“

顾莉雅唱的“毕业那年”插曲“寂寞花火”!

让我有想起北大版“此间的少年”的电影的插曲
“转身之间”

 

视频: 此间的少年(165分钟导演未删节版)There.They.Were.2010

Outlook.com的宣传视频

话说我从hotmail升级到outlook已经有了近一个月了。无意中看到微软的这个宣传视频,所以毫不犹豫的分享了。

outlook.com现在提供的服务非常不错,我认为简直是一改微软以往web方面的颓废面貌,非常清新。而且现在版本也没有广告了,赞一个啊。

而且搭配了windows phone,outlook.com上的人脉、skydrive能够非常方便的与手机同步。但是悲惨的是,目前微软没有在中文版上集成skype。

视频地址:http://windows.microsoft.com/en-US/windows/outlook

[转载]把女友升级为老婆时发生的BUG!

亲爱的技术支持部:

我急需您的帮助。我最近将“女朋友7.0”升级到“妻子1.0”,发现这个新程序意外地启动了孩子生产程序,而且占用了大量的空间和珍贵的资源。这在产品的使用手册中没有提到。

此外“妻子1.0”自动将自己安装到其他的所有的程序中,它随系统同时启动,监控整个系统的状态。

“男人夜出2.5”和“高尔夫 5.3”无法再运行,一旦运行该程序系统即行崩溃。试图运行“周日足球6.3”经常失败,而“周六购物7.1”却代之运行。看来我无法保留“妻子 1.0”,因为它和我喜欢运行的任何程序都不相容。我打算回到“女朋友7.0”,可是这个程序又无法卸载。

请您帮帮我吧!

 

技术支持部的回信

亲爱的用户:

这是个很普通的问题,产生于你对基本原理的不了解。

很多的男人将“女朋友7.0”升级到“妻子1.0”,以为“妻子1.0”是一个“实用与娱乐程序”。然而“妻子1.0”却是个操作系统,是被设计用来运行所有程序的。

你不可能清除“妻子1.0”,也不可能回到“女朋友7.0”,因为“妻子1.0”的设计中不具有这个功能,无论是卸载、删除或是清除已经安装在系统中的这些程序文件,都是不可能的。

有些人曾试图安装“女朋友8.0”或者“妻子2.0”,结果是产生了更多的问题(参见手册中的赡养费/孩子的养育/律师费用)。我安装过“妻子1.0”,我建议你保持现在的安装状态,妥善解决遇到的困难。

当任何错误或问题出现的时候,不论你认为是什么原因引起的,你必须运行“C:\我道歉”程序,并且避免使用“退出键”。必要时可能需要运行“C:\我道歉”多次,希望最终能使操作系统恢复到初始状态。

“妻子1.0”虽然是一个需要高保养的程序,但同时对人可能是非常有益的。要想充分地利用它,需要买些额外的软件比如 “鲜花2.0”和“巧克力5.0”。

不要在任何情况下安装“秘书(短裙版)”,因为“妻子1.0”不支持这种程序,而且系统多数时候肯定会崩溃。

 

我希望上述说明能对你有所助益。感谢您使用“妻子1.0”。我们全体技术支持人员祝你好运。

 

编后语:在安装“老婆1.0版”之前,一定要长时间“拷机”,检验你的电脑承受能力。否则,建议不要急于安装“老婆1.0版”,到时候无法卸载,或卸载后必须低格硬盘,这对电脑的伤害是非常大的,谨此提示!

 

来源:http://i.pcbeta.com/blog-1585777-86.html