Javascript 使用executeScript传递变量

Javascript 使用executeScript传递变量,javascript,google-chrome-extension,Javascript,Google Chrome Extension,如何将变量stuff传递到文件sendMessage.js?无法将变量传递到执行的脚本中。我想这样做是出于安全和性能原因,因为这可能会导致内存泄漏 您可以做的是传递变量的值 有两种方法: 将消息发送到脚本,请参阅 使用相同的executeScript将变量值注入页面脚本,但将脚本作为字符串而不是文件名传递。您可以执行executeScript调用:一个用于值注入,另一个用于文件注入 无法将变量传递到执行的脚本中。我想这样做是出于安全和性能原因,因为这可能会导致内存泄漏 您可以做的是传递变量的值

如何将变量
stuff
传递到文件
sendMessage.js

无法将变量传递到执行的脚本中。我想这样做是出于安全和性能原因,因为这可能会导致内存泄漏

您可以做的是传递变量的

有两种方法:

  • 将消息发送到脚本,请参阅
  • 使用相同的
    executeScript
    将变量值注入页面脚本,但将脚本作为字符串而不是文件名传递。您可以执行
    executeScript
    调用:一个用于值注入,另一个用于文件注入

  • 无法将变量传递到执行的脚本中。我想这样做是出于安全和性能原因,因为这可能会导致内存泄漏

    您可以做的是传递变量的

    有两种方法:

  • 将消息发送到脚本,请参阅
  • 使用相同的
    executeScript
    将变量值注入页面脚本,但将脚本作为字符串而不是文件名传递。您可以执行
    executeScript
    调用:一个用于值注入,另一个用于文件注入

  • 不确定我是否能用上。我正试着跟着#1<代码>chrome.runtime.onMessage.addListener(函数(消息){if(message.type==“pickLine”){pickLineText=message.content;}})在我的sendMessage.js中,不管发生什么,拾取线似乎总是blank@ILovephp123这是一条异步消息,可能是在侦听器在页面上注册之前发送的?您还需要添加所有必需的权限,上次我尝试做一件类似的事情时,我花了相当多的时间来让它工作,这不是很明显,他们是如何在chrome中完成的…sendMessage是在execute shell的上方还是下方?我认为只要这两个操作都是异步的,就没有区别。我认为您可能需要在页面上等待几毫秒才能获得值,这很难看。最有可能的是,第二个选项更容易设置值。我觉得您提供的第二个选项要简单得多,我只是不太明白您在说什么。lol。抱歉=/不确定我是否能让它工作。我正试着跟着#1<代码>chrome.runtime.onMessage.addListener(函数(消息){if(message.type==“pickLine”){pickLineText=message.content;}})在我的sendMessage.js中,不管发生什么,拾取线似乎总是blank@ILovephp123这是一条异步消息,可能是在侦听器在页面上注册之前发送的?您还需要添加所有必需的权限,上次我尝试做一件类似的事情时,我花了相当多的时间来让它工作,这不是很明显,他们是如何在chrome中完成的…sendMessage是在execute shell的上方还是下方?我认为只要这两个操作都是异步的,就没有区别。我认为您可能需要在页面上等待几毫秒才能获得值,这很难看。最有可能的是,第二个选项更容易设置值。我觉得你提供的第二个选项更容易,我只是不太明白你在说什么。lol。对不起=/
    var stuff = "Heeeey";   
    chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
        file: 'sendMessage.js'
    });;