Webkit线程化javascript文件加载和执行顺序

时间:2009-12-21 19:48:12

标签: javascript jquery webkit xss

我正在尝试构建一个XSS小部件,并且我遇到了Webkit浏览器加载外部javascript文件的问题,我将这些文件附加到dom中。它的工作原理如下:

  • Widget.js将3个javascript文件追加到dom(jquery,data,content)
  • Jquery.js是带有自定义命名空间的标准jquery
  • Data.js是一个javascript数组
  • Content.js是一组jQuery指令,用于根据Data.js中的数据构建窗口小部件。

在firefox中,浏览器正好100%的时间告诉它,并且小部件加载了你在页面上放置包含javascript的地方。

然而,在Webkit即Safari中,浏览器以随机顺序返回3个文件,并在返回后执行。这意味着当Content.js查找$来执行jquery魔术时它会失败。同样,如果jQuery可用,并且如果由于缺少数据而失败则会加载数据。

建议好吗?

1 个答案:

答案 0 :(得分:0)

执行此操作的最佳方法是仅连接服务器上的文件 - 这样您就可以将3个http请求转换为1个,并且脚本将一起解析和执行。

如果你不能这样做,你是否必须通过将它们附加到dom来添加脚本标签?如果您只是在HTML中添加它们,它应该可以工作:

<script src="widget.js"></script>
<script src="jquery.js"></script>
<!--etc -->