我正在制作一个谷歌浏览器扩展程序,它会有一个弹出窗口,当按下收藏夹时会显示选项卡中链接的推荐 下面是我的代码。但它不起作用。如果我做错了,请告诉我
这是我的表现.json:
{
"name": "Tab History",
"version": "1.0",
"description" : "simple sweet" ,
"permissions": ["tabs","history", ],
"manifest_version": 2 ,
"browser_action": {
"default_popup": "main.html" },
"background": {
"scripts": ["graph.js"], "persistent": false
},
"content_scripts" : [
{
"matches" : ["<all_urls>"] ,
"js" : ["contentscript.js"] ,
"page" : "main.html"
}
]}
这是我的main.html
<html>
<head>
<style>
body {min-width: 300px;}
</style>
<script src='graph.js'></script>
</head>
<body>
<div id="map">
</div>
</body>
</html>
这是我的contentscript.js
chrome.extension.sendMessage({ref: document.referrer}) ;
这是graph.js
document.addEventListener('DOMContentLoaded', function () {
var arr = new Array();
getmylist("map");});
function getmylist(divName, arr)
{
/*
chrome.tabs.query({currentWindow: true, active: true},function(tabs) {
var d = tabs[0].id;
document.getElementById(divName).innerHTML = d;
});
*/
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
var referrer = request.ref;
document.getElementById(divName).innerHTML = referrer ;
}
}
答案 0 :(得分:0)
我的帖子评论太长了,所以我在这里发帖:首先我建议你将graph.js重命名为background.js,将main.html重命名为popup.html。在content_scripts的清单文件中有一个“页面”项目,该项目不存在 - 请检查文档 - 所以删除它。其次,为了调试目的,在内容脚本和后台记录文档和document.referrer。您将在内容脚本中看到它工作正常但在后台页面中您会收到错误。虽然您没有声明background.html,但它会自动创建。您可以查看此背景页面:chrome&gt;&gt;扩展名&gt;&gt;您的扩展程序&gt;&gt;检查视图:背景&gt;&gt;元素。当你在background.js中引用'document'而不是你真正引用这个html而不是popup.html时。这就是为什么你的解决方案不起作用,你必须在&gt;&gt;上得到错误的原因检查视图:背景&gt;&gt;安慰。核实!以下是您应该实现的逻辑:您应该从弹出脚本(它是一个新文件)发送一条消息,该消息将被内容脚本侦听器捕获,并且内容脚本侦听器会发送回引用者。