Javascript 注入的脚本无法声明变量
我正在尝试使用Chrome扩展的内容脚本将一些JS注入到网页中。注入脚本声明一个变量,当从同一注入脚本打印时,该变量可以正常打印。但是,如果稍后在页面中甚至在控制台中尝试访问同一变量,则找不到该变量。请注意,我不是在我的内容脚本中声明变量,而是在实际网页中注入JS 以下是内容脚本中的最小代码:Javascript 注入的脚本无法声明变量,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试使用Chrome扩展的内容脚本将一些JS注入到网页中。注入脚本声明一个变量,当从同一注入脚本打印时,该变量可以正常打印。但是,如果稍后在页面中甚至在控制台中尝试访问同一变量,则找不到该变量。请注意,我不是在我的内容脚本中声明变量,而是在实际网页中注入JS 以下是内容脚本中的最小代码: var script = `<script> var zzxx = "random stuff"; console.log(zzxx);
var script = `<script>
var zzxx = "random stuff";
console.log(zzxx);
window.xyz = "1234";
console.log(window.xyz);
</script>`;
$('body').append(script);
但无法从控制台或其他注入脚本访问zzxx或window.xyz。原因是什么?我认为这应该是一个可变范围的问题 当然,试着更换
var zzxx = "random stuff";
与:
window.zzxx = "random stuff"
为我编辑此作品:
var s = document.createElement("script");
s.type = "text/javascript";
s.innerHTML = "var toto = 3; console.log(toto);";
$("head").append(s);
当我在控制台上收到打印的消息时(请参阅有问题的输出部分),它表明脚本已经执行。我也尝试过window.xyz(请参阅相关代码),我相信它不会起作用,但是如果您尝试通过注入新脚本来访问变量会怎么样?这正是我最初尝试的。通过一个脚本注入变量,通过另一个脚本访问。不起作用。是否确定未动态重新加载页体?(删除脚本)我仍然可以在DOM中使用ChromeProbable的副本检查器查看脚本
var s = document.createElement("script");
s.type = "text/javascript";
s.innerHTML = "var toto = 3; console.log(toto);";
$("head").append(s);