首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Background.js找不到注入内容脚本的内容

Background.js找不到注入内容脚本的内容
EN

Stack Overflow用户
提问于 2015-04-28 22:38:38
回答 1查看 485关注 0票数 0

我的Chrome扩展有一个内容脚本,它将自定义DIV注入到当前页面中。这部分起作用了。

但是,该扩展还有一个右键单击上下文菜单,单击该菜单时,应该会以某种方式修改注入的DIV (比方说,在该DIV中添加一些文本)。问题是没有找到注入的内容。右键单击菜单处理程序在Background.js中,该文件对内容一无所知。

manifest.js

代码语言:javascript
运行
复制
"content_scripts": [
    {
        "matches": [
            "http://*/*",
            "https://*/*"
        ],
        "css": ["contentstyle.css"],
    "js": ["jquery-1.11.2.min.js", "contentscript.js"],

"background": {
    "persistent": true,
    "scripts": ["background.js"]  
},     

contentscript.js

代码语言:javascript
运行
复制
// Add Custom DIV - works OK
var div = document.createElement( 'div' );
div.id = 'infoDiv';
document.body.appendChild( div );
document.getElementById('infoDiv').innerHTML = 'TEST';

background.js

代码语言:javascript
运行
复制
// Add menu - gets added, but can't see Injected Content from here
chrome.contextMenus.create({
    "title": "My Right-Click Menu",
    "contexts": ["image"],
    "onclick" : changeDiv
  });

function changeDiv(e)
{
    var divHTML = document.getElementById('infoDiv').innerHTML;
    alert('Current HTML in DIV: ' + divHTML);
}

我无法从后台脚本获得divHTML,有某种错误,没有警报框。背景和内容之间能有沟通吗?我被迫在后台脚本中实现菜单,对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-28 22:45:18

错误的document

代码语言:javascript
运行
复制
var divHTML = document.getElementById('infoDiv').innerHTML;

请先读体系结构概述。后台脚本是在一个单独的HTML文档中执行的,因此不会在选项卡中“看到”页面。

您需要将该值传递给内容脚本,以便对可见页进行操作。你可能需要消息传递

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29931183

复制
相关文章

相似问题

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