我有最简单的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。任何人都可以解释这种行为吗?
最佳答案
您正在脚本中使用全局变量。如果页面中的脚本使用具有相同名称的全局变量,它将更改变量中的值,而脚本将显示该值。