Chrome扩展程序:选项卡上的executeScript

用户名

我最近开始开发我的第一个Google Chrome扩展程序,但遇到的问题是我不确定如何解决。

在我的脚本中,我正在检查是否向特定网站打开了选项卡,如果是,则正在执行以下代码:

chrome.tabs.update(tab.id, {active: true});

// Execute code on the existing tab to open the Message.
chrome.tabs.executeScript(tab.id, {
    "code": "messageOpen(15, false);"
});

上面的代码应将选项卡更新为活动状态,然后尝试执行一个名为的函数messageOpen()我遇到的问题是该功能messageOpen()作为<HEAD>我网站的,而不是我的扩展名中包含的功能存在

因此,在尝试执行messageOpen()功能时,我收到此错误:

Uncaught ReferenceError: messageOpen is not defined

我100%肯定messageOpen()如果我定期浏览网站可以使用功能,但是使用时executeScript,似乎该扩展程序无法运行已经在我的活动标签中加载的功能。

有人有什么建议或替代方法吗?

马克·博内利

发生这种情况是因为内容脚本无法与其window被注入到的页面对象进行交互如果要执行使用messageOpen()函数的脚本,必须使用将该代码注入到页面上下文<script>,如下所示:

var myScript = document.createElement('script');
myScript.textContent = 'messageOpen(15, false);';
document.head.appendChild(myScript);

因此,如果您想使用executeScript()方法和"code"属性注入此代码可以这样进行:

chrome.tabs.update(tab.id, {active: true});

// Execute code on the existing tab to open the Message.
chrome.tabs.executeScript(tab.id, {
    "code": "var myScript = document.createElement('script');"
        + "myScript.textContent = 'messageOpen(15, false);';"
        + "document.head.appendChild(myScript);"
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

引导程序选项卡在另一页上打开选项卡

来自分类Dev

Chrome扩展程序可将多个选项卡移动到新窗口

来自分类Dev

是否可以通过chrome扩展与非活动选项卡中的内容元素进行交互?

来自分类Dev

jQuery选项卡上的选项

来自分类Dev

AngularJS引导程序选项卡选项卡标题

来自分类Dev

Chrome扩展程序:webRequest重定向到现有选项卡,而无需打开新选项卡

来自分类Dev

扩展片段的类中的选项卡

来自分类Dev

Chrome扩展程序中的所有选项卡中设置切换开关状态

来自分类Dev

Chrome扩展程序-找出扩展程序选项卡是否打开

来自分类Dev

Chrome扩展程序仅在当前选项卡中更改用户代理

来自分类Dev

Chrome-如何禁用选项卡上的滚动

来自分类Dev

Chrome扩展程序:在当前选项卡上进行事件监听

来自分类Dev

如何在Chrome扩展程序中的后台消息侦听器中检索活动选项卡?

来自分类Dev

Chrome扩展程序-executeScript不在活动选项卡中

来自分类Dev

chrome扩展程序中的选项卡更改时的页面内容

来自分类Dev

Chrome扩展程序-在选项卡上定义的调用功能(参考错误)

来自分类Dev

Google Chrome扩展程序在弹出窗口和选项卡之间进行对话

来自分类Dev

Chrome扩展程序:Javascript注入到活动选项卡

来自分类Dev

Chrome扩展程序在下一个选项卡上返回上一个选项卡

来自分类Dev

Chrome扩展程序:webRequest重定向到现有选项卡,而无需打开新选项卡

来自分类Dev

扩展片段的类中的选项卡

来自分类Dev

活动选项卡上的CSS选项卡箭头

来自分类Dev

将chrome webrequest的addeventlistener限制为扩展的当前选项卡或主窗口

来自分类Dev

Bash参数扩展以删除选项卡

来自分类Dev

Chrome扩展程序选项

来自分类Dev

Chrome 扩展程序:如何通过单击 html 弹出窗口中的按钮在新选项卡中打开指定链接?

来自分类Dev

如何在开发(解包)时在所有选项卡上提供 Chrome 扩展程序?

来自分类Dev

Chrome 扩展程序 - 在当前选项卡的 popup.html 中激活脚本

来自分类Dev

仅在 Chrome 扩展程序的特定选项卡上注入 JS

Related 相关文章

  1. 1

    引导程序选项卡在另一页上打开选项卡

  2. 2

    Chrome扩展程序可将多个选项卡移动到新窗口

  3. 3

    是否可以通过chrome扩展与非活动选项卡中的内容元素进行交互?

  4. 4

    jQuery选项卡上的选项

  5. 5

    AngularJS引导程序选项卡选项卡标题

  6. 6

    Chrome扩展程序:webRequest重定向到现有选项卡,而无需打开新选项卡

  7. 7

    扩展片段的类中的选项卡

  8. 8

    Chrome扩展程序中的所有选项卡中设置切换开关状态

  9. 9

    Chrome扩展程序-找出扩展程序选项卡是否打开

  10. 10

    Chrome扩展程序仅在当前选项卡中更改用户代理

  11. 11

    Chrome-如何禁用选项卡上的滚动

  12. 12

    Chrome扩展程序:在当前选项卡上进行事件监听

  13. 13

    如何在Chrome扩展程序中的后台消息侦听器中检索活动选项卡?

  14. 14

    Chrome扩展程序-executeScript不在活动选项卡中

  15. 15

    chrome扩展程序中的选项卡更改时的页面内容

  16. 16

    Chrome扩展程序-在选项卡上定义的调用功能(参考错误)

  17. 17

    Google Chrome扩展程序在弹出窗口和选项卡之间进行对话

  18. 18

    Chrome扩展程序:Javascript注入到活动选项卡

  19. 19

    Chrome扩展程序在下一个选项卡上返回上一个选项卡

  20. 20

    Chrome扩展程序:webRequest重定向到现有选项卡,而无需打开新选项卡

  21. 21

    扩展片段的类中的选项卡

  22. 22

    活动选项卡上的CSS选项卡箭头

  23. 23

    将chrome webrequest的addeventlistener限制为扩展的当前选项卡或主窗口

  24. 24

    Bash参数扩展以删除选项卡

  25. 25

    Chrome扩展程序选项

  26. 26

    Chrome 扩展程序:如何通过单击 html 弹出窗口中的按钮在新选项卡中打开指定链接?

  27. 27

    如何在开发(解包)时在所有选项卡上提供 Chrome 扩展程序?

  28. 28

    Chrome 扩展程序 - 在当前选项卡的 popup.html 中激活脚本

  29. 29

    仅在 Chrome 扩展程序的特定选项卡上注入 JS

热门标签

归档