我可以从另一个脚本中获取变量的值吗?

时间:2014-09-02 16:55:53

标签: javascript google-chrome-extension

我可以使用内容脚本从另一个脚本获取变量的值吗?例如,来自Facebook上的脚本。抱歉我的英文。

1 个答案:

答案 0 :(得分:2)

您的内容脚本可以在页面中注入<script>元素。注入的脚本应该读取值并使用DOM事件将值传递给内容脚本。

内容脚本

// inject a script from the extension's files
// into the execution environment of the main page
var s = document.createElement('script');
s.src = chrome.extension.getURL("value _reader.js");
document.documentElement.appendChild(s);

document.addEventListener("valueFromPageEvent", function(event) {
    console.log("the content script just got the value " + event.detail.val);
});

value_reader.js (我们在上面的内容脚本中注入)中,假设我们要从页面中读取变量 foobar

var dataObj = { "val": foobar };
var storeEvent = new CustomEvent('valueFromPageEvent', { "detail": dataObj });
document.dispatchEvent(storeEvent);

N.B。: value_reader.js脚本必须位于清单中web_accessible_resources的扩展程序列表中。