我有最简单的 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 注入(inject)到 head 元素中。
在 mail.google.com 中,控制台输出是 4 个五,后跟十六个 Resource interpreted as Other but transferred with MIME type undefined。
每个其他站点只显示 20 个五。
谁能解释一下这种行为?
最佳答案
您在脚本中使用了全局变量。如果页面中的脚本使用同名的全局变量,它将更改变量中的值,而您的脚本将显示该值。
关于javascript - console.log(5) 的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8711899/