0

伙计们,

快速提问;有人可以检查这种语法是否正确吗?我通过 firefox 1.7.3 和 ie8 遇到了关于此问题的错误,我终生无法得到它。

<script>window.jQuery || document.write('<script src="/js/jquery-1.7.1.min.js"><\/script>')</script>
4

3 回答 3

3

你不需要/在你document.write的初学者中转义(\失败是因为它不能识别\/为有效的转义序列)。

但是,当您删除它时,</script>会出现这会使 XML 解析器失败。(<script>...</script>是解析器正在寻找的;它不关心它是否在(我们所看到的)字符串中)因此,引入了连接:</scr'+'ipt>.

总之,我们有:

<script>window.jQuery || document.write('<script src="/js/jquery-1.7.1.min.js"></scr'+'ipt>');</script>
于 2013-01-11T19:13:55.357 回答
2

当解析器遇到第一个</script>它结束脚本标签。所以这个修复应该有效:

<script>
window.jQuery || document.write('<script src="/js/jquery-1.7.1.min.js"></sc'+'ript>');
</script>
于 2013-01-11T19:10:49.050 回答
1

我可以建议一种不同的动态脚本加载方法。例如:

var script= document.createElement('script');
script.type= 'text/javascript';
script.src= 'helper.js';
//append script somewhere on the dom
于 2013-01-11T19:15:42.583 回答