通过chrome扩展将变量传递到当前选项卡

时间:2010-04-23 16:20:58

标签: javascript google-chrome google-chrome-extension

我正在编写我的第一个chrome扩展,我想将一个变量传递给当前打开的选项卡并用它操作DOM。

我的扩展程序有一个按钮,单击时,正在执行此代码:

chrome.tabs.getSelected(null, function(tab) {
 chrome.tabs.executeScript(tab.id, {
  file: 'tabscript.js'
 });
});

这样可以正常工作,但我认为无法将变量传递给tabscript.js,因此可以在打开的选项卡上使用它。

1 个答案:

答案 0 :(得分:4)

你需要将变量传递给什么?你有一个在脚本中调用的函数吗?

必须注意的是,您无法访问Javascript页面,只能访问DOM。

如果您必须使用特定参数调用特定功能,则应调查content scriptsmessage passing

内容脚本可以在每个页面加载(或选择的页面)上运行,您可以使用消息传递将消息从扩展按钮发送到内容脚本中的函数。

另外,更接近您最初的想法,您可以使用以下内容构建要在运行时调用的函数:

chrome.tabs.getSelected(null, function(tab) {
 chrome.tabs.executeScript(tab.id, {
  code: 'function(){ ...... your code built dynamically ......}'
 });
});