2016-04-29 95 views
1
var stuff = "Heeeey"; 
chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, { 
    file: 'sendMessage.js' 
});; 

如何将变量stuff传递给文件sendMessage.js用executeScript传递变量

回答

0

没有办法将变量传递到执行的脚本中。我猜这是为了安全性和性能原因,因为这可能会导致内存泄漏。

你可以做的是传递一个的变量。

有两种方式:

  1. 将消息发送到你的脚本,请参阅the messaging for communication between extension and pages
  2. 使用相同executeScript注入变量值到页面脚本,但通过脚本为一个字符串,而不是文件名称。您可以执行executeScript调用:一个用于值注入,另一个用于文件注入。
+0

不知道我是否得到它的工作。我试图跟随#1。 'chrome.runtime.onMessage.addListener(function(message)if(message.type ==“pickLine”){ pickLineText = message.content; } });'是否在我的sendMessage.js中并且不管什么,pickLine似乎总是空白 – Dgameman1

+0

@ ILovephp123这是一个异步消息,也许你发送它之前,监听器在页面上注册?还需要添加所有必需的权限,上次我尝试做类似的事情时,我花了相当长的时间来使其工作,这并不明显,他们如何在Chrome中执行此操作... – smnbbrv

+0

sendMessage是否在上方或下方执行shell? – Dgameman1