我正在尝试构建一个 XSS 小部件,但 Webkit 浏览器在加载我附加到 dom 中的外部 javascript 文件时遇到了问题。它的工作原理如下:
- Widget.js 将 3 个 javascript 文件附加到 dom(jquery、数据、内容)
- Jquery.js 是带有自定义命名空间的标准 jquery
- Data.js 是一个 javascript 数组
- Content.js 是一组 jQuery 指令,用于根据 Data.js 中的数据构建小部件
在 Firefox 中,浏览器会准确地 100% 地执行我告诉它的操作,并且小部件会加载您在页面上放置 include javascript 的任何位置。
但是在Webkit即Safari中,浏览器返回3个文件的顺序是随机的,返回一次就执行。这意味着当 Content.js 寻找 $ 来执行 jquery 魔法时,它会失败。同样,如果 jQuery 可用,并且如果由于缺少数据而失败,它会延迟加载数据。
有什么建议吗?
最佳答案
执行此操作的最佳方法是仅连接服务器上的文件——这样您就可以从发出 3 个 HTTP 请求变成一个请求,然后一起解析和执行脚本。
如果不能这样做,是否必须通过将脚本标签附加到 dom 来添加脚本标签?如果您只是在 HTML 中添加它们,它应该可以工作:
<script src="widget.js"></script>
<script src="jquery.js"></script>
<!--etc -->
关于javascript - Webkit线程javascript文件加载和执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942199/