我有最简单的Chrome扩展程序,其中包含内容javascript(没有其他内容):

script="\
c=0;\
(function f() {\
    if (++c>20) return;\
    console.log(5);\
    setTimeout(f, 500);\
})();\
";
scriptBlock = document.createElement('script');
scriptBlock.type = 'text/javascript';
scriptBlock.appendChild(document.createTextNode(script));
document.getElementsByTagName('head')[0].appendChild(scriptBlock);


这只是将一小段js注入head元素中。
在mail.google.com中,控制台输出为4个5,随后是16个Resource interpreted as Other but transferred with MIME type undefined.其他所有站点仅显示20个5。

任何人都可以解释这种行为吗?

最佳答案

您正在脚本中使用全局变量。如果页面中的脚本使用具有相同名称的全局变量,它将更改变量中的值,而脚本将显示该值。

10-06 08:56