关于chrome.tabs.executeScript(id,details,callback)

dus*_*and 28 google-chrome-extension

这个函数有一个回调,如:function(任何结果的数组){...};

但我不知道结果意味着什么.

例如,chrome.tabs..executeScript(null,{code:"var x = 10"},function(){});

如何将"x"返回给回调?

rsa*_*hez 43

脚本的结果是要评估的最后一个表达式.所以在你的例子中你可以使用:

chrome.tabs.executeScript( null, {code:"var x = 10; x"},
   function(results){ console.log(results); } );
Run Code Online (Sandbox Code Playgroud)

这会将[10]记录到扩展程序的控制台.

结果实际上是一个值数组,因为如果页面有多个框架,您可以指定应在每个框架中注入脚本并获取所有注入的结果.请参阅executeScript规范.如果未指定allFrames:true,则结果将始终为单个元素数组.

  • 如果您的扩展程序无权在当前选项卡上执行脚本,则会发生@ user1032613.确保域名包含在`manifest.json`的`permissions`设置中 (2认同)
  • 请注意,如果代码抛出错误,结果也将为null。 (2认同)