Javascript 注入的脚本无法声明变量

Javascript 注入的脚本无法声明变量,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在尝试使用Chrome扩展的内容脚本将一些JS注入到网页中。注入脚本声明一个变量,当从同一注入脚本打印时,该变量可以正常打印。但是,如果稍后在页面中甚至在控制台中尝试访问同一变量,则找不到该变量。请注意,我不是在我的内容脚本中声明变量,而是在实际网页中注入JS 以下是内容脚本中的最小代码: var script = `<script> var zzxx = "random stuff"; console.log(zzxx);

我正在尝试使用Chrome扩展的内容脚本将一些JS注入到网页中。注入脚本声明一个变量,当从同一注入脚本打印时,该变量可以正常打印。但是,如果稍后在页面中甚至在控制台中尝试访问同一变量,则找不到该变量。请注意,我不是在我的内容脚本中声明变量,而是在实际网页中注入JS

以下是内容脚本中的最小代码:

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);