日期:2014-05-16 浏览次数:20347 次
我们发现 jQuery.html函数在动态加载跨域 JavaScript时,在 Firefox和 Opera中可以按照引入顺序执行,而在 IE, Chrome和 Safari中都不能确保执行顺序。
经过分析,我们发现 jQuery.html在处理跨域静态 JS文件时,并非采用的同步 AJAX(也存在同源策略的限制),而是在 head中添加 script标签来完成的。
?
我们先来简单回顾下 HTML源代码( test2_1.htm):
<html>
<head>
??? <title></title>
??? <script src="js/jquery-1.4.4.js" type="text/javascript"></script>
??? <script>
??????? $(function(){
??????????? $('#container').html('<script src="http://test1.sanshi.me/jsorder/service.ashx?file=js/jquery-ui.js&delay=2000" type="text\/javascript"><\/script>' + '<script>alert(typeof(jQuery.ui));<\/script>');
??????? });
??? </script>
</head>
<body>
??? <div id="container">
??? </div>
</body>
</html>
?
在实际测试中,我发现如果使用 jQuery1.5.1,那么得到的结果和使用 jQuery1.4.4有些不同,请看下表:
? |
test2_1.htm( jquery-1.4.4.js ) 通过 jQuery.html动态加载跨域 JavaScript文件 |
test2_2.htm( jquery-1.5.1.js ) 通过 jQuery.html动态加载跨域 JavaSc
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|