【问题标题】:append javascript to head - firefox ok, but fails on chrome将javascript附加到head - firefox ok,但在chrome上失败
【发布时间】:2014-06-12 02:34:11
【问题描述】:

我使用以下函数将 javascript 文件包含在头部,它适用于 firefox,但在 chrome 上出现名为“访问受限 URI 被拒绝”的小错误。

文件似乎已加载到 DOM 中,但我无法使用该文件中的函数。

function load(src){ $('script[src="' + src + '"]').remove(); $('<script>').attr('src', src+"?"+Math.random()).appendTo('head'); }

load('/my/local/file.js');

有人知道如何解决它吗?

感谢您的回复。

【问题讨论】:

  • 仅供参考,删除现有的 &lt;script&gt; 标签对您没有好处。这不会导致 javascript 环境发生任何变化。解析脚本后,删除脚本标记不会撤消任何操作。
  • 脚本直接放在html代码中会加载吗?可能是浏览器中的设置,或者 chrome 中的扩展程序会阻止加载带有该错误的脚本。
  • 感谢 jfriend00 和 t.niese 的回复,这是很好的提示,很好,文件包含一些语法错误,所以 chrome 比 firefox 有更多的限制规则..

标签: javascript jquery html google-chrome dom


【解决方案1】:

尝试用纯js兼容所有浏览器:

var myHead = document.head || document.getElementsByTagName('head')[0];

var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', 'myJsFileSource');

myHead.appendChild(script);

【讨论】:

  • 感谢您的回复,我刚刚意识到为什么它是错误的 - 因为 Math.rand() 但它没有解决脚本中的问题函数没有加载到 chrome
【解决方案2】:

script 源中删除/ 并尝试如下:

load('/my/local/file.js'); 替换为load('my/local/file.js');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2016-07-12
    • 2022-08-15
    • 1970-01-01
    相关资源
    最近更新 更多