注入的脚本无法声明变量

时间:2018-01-24 21:10:46

标签: javascript google-chrome-extension

我正在尝试使用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。是什么原因?

1 个答案:

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