我正在编写我的第一个chrome扩展,我想将一个变量传递给当前打开的选项卡并用它操作DOM。
我的扩展程序有一个按钮,单击时,正在执行此代码:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.executeScript(tab.id, {
file: 'tabscript.js'
});
});
这样可以正常工作,但我认为无法将变量传递给tabscript.js,因此可以在打开的选项卡上使用它。
答案 0 :(得分:4)
你需要将变量传递给什么?你有一个在脚本中调用的函数吗?
必须注意的是,您无法访问Javascript页面,只能访问DOM。
如果您必须使用特定参数调用特定功能,则应调查content scripts和message passing。
内容脚本可以在每个页面加载(或选择的页面)上运行,您可以使用消息传递将消息从扩展按钮发送到内容脚本中的函数。
另外,更接近您最初的想法,您可以使用以下内容构建要在运行时调用的函数:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.executeScript(tab.id, {
code: 'function(){ ...... your code built dynamically ......}'
});
});