我正在尝试编写一个书签,以增强我经常使用的网站的功能。该网站的所有代码都在一个脚本中包含在一个自调用功能中,如下所示:
(function() {
var exampleVar=1;
// code
}).call(this);
我无法控制该网站。如何从控制台或书签中获取exampleVar
的值?
您不能,这是范围界定的目的之一,是为了保护访问的变量形式。
如果位于嵌入式<script>
标记中,则可以访问该脚本的textContent
:
// YOUR CODE
const scriptTag = document.querySelector('div + script');
const match = scriptTag.textContent.match(/\bexampleVar=(\d+)/);
console.log(match[1]);
<div></div>
<script>
// WEBSITE's CODE
(function() {
var exampleVar=1;
// code
}).call(this);
</script>
您将必须找出一种唯一标识所需<script>
标签的方法。上面的示例使用CSS选择器div + script
访问紧随<script>
之后的第一个<div>
。为您所在的网站找出类似的CSS选择器。