【问题标题】:about chrome.tabs.executeScript( id,details, callback)关于 chrome.tabs.executeScript(id,details, callback)
【发布时间】:2012-10-21 09:41:42
【问题描述】:

这个函数有一个类似function(array of any result) {...};的回调

但我不知道结果是什么意思。

例如,

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

如何将x返回给回调?

【问题讨论】:

标签: google-chrome-extension


【解决方案1】:

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

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

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

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

【讨论】:

  • 我有这个chrome.tabs.executeScript( null, {code:"var x = 10; x"}, function(results){ alert(results); } );,但未定义为警报。您知道为什么会发生这种情况吗?
  • @user1032613 如果您的扩展程序无权在当前选项卡上执行脚本,则会发生这种情况。确保域包含在 manifest.jsonpermissions 设置中
  • 谢谢!而且我刚刚意识到,对 manifest.json 所做的修改只有在我重新安装扩展后才会生效。
  • @user1032613 您可以通过在 chrome://extensions 中打开开发者模式来重新加载扩展。或按 ctrl-R
  • 请注意,如果代码抛出错误,结果也会为空。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多