首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >浏览器中打开的铬扩展页能与后台页面通信吗?

浏览器中打开的铬扩展页能与后台页面通信吗?
EN

Stack Overflow用户
提问于 2015-08-25 12:02:47
回答 1查看 252关注 0票数 0

我的一个扩展html页面,当在浏览器中打开时,需要与后台脚本通信。我尝试过提到这里的方法,但无法将消息从页面发送到后台。我该怎么做呢?我不能在页面上使用内容脚本,这些内容脚本的开头是chrome-extension://namhfjepbaaecpmpgehfppgnhhgaflne/content/web/viewer.html,因此不能使用传统的消息传递。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-25 12:19:18

在您的问题中提到的链接是用于扩展包之外的普通网页。

如果显示的html文件属于您的扩展名包,则可以在页面脚本文件中使用manifest.json允许的所有铬API。

例如,若要向后台/事件页发送消息,请使用chrome.runtime.sendMessage

  • options.js,从options.html链接 chrome.runtime.sendMessage({text:"Hello"},函数(响应){console.log(响应);});
  • 背景/事件页 chrome.runtime.onMessage.addListener(function(message,发件人,sendResponse) { if (message.text == "Hello") { sendResponse({text:"Got“});};

或者,您也可以直接访问背景页面:

  • 持久背景页 chrome.extension.getBackgroundPage().someGlobalFunction()
  • 事件页 Chrome.runtime.getBackgroundPage(函数(Bg){ bg.someGlobalFunction();});

至于内容脚本,您可以通过在html文件中手动引用直接添加它们:

代码语言:javascript
复制
<html>
    <head>
        <script src="mycontentscript.js"></script>
..............
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32203514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档