我正在尝试使用Chrome扩展程序的内容脚本将一些JS注入网页。注入的脚本声明了一个变量,当从相同的注入脚本打印时,该变量打印正常。但是,如果我稍后尝试在页面中甚至在控制台中访问相同的变量,则找不到它。请注意,我没有在我的内容脚本中声明变量,我在实际网页中注入了JS。
以下是内容脚本中的最小代码:
var script = `<script>
var zzxx = "random stuff";
console.log(zzxx);
window.xyz = "1234";
console.log(window.xyz);
</script>`;
$('body').append(script);
输出:
random stuff
1234
但是无法从控制台或其他注入的脚本访问zzxx或window.xyz。是什么原因?
答案 0 :(得分:1)
我认为它应该是可变范围的问题
确保尝试替换
var zzxx = "random stuff";
with:
window.zzxx = "random stuff"
为我编辑这项工作:
var s = document.createElement("script");
s.type = "text/javascript";
s.innerHTML = "var toto = 3; console.log(toto);";
$("head").append(s);