在Google Chrome扩展程序中获取链接的引荐网址

时间:2014-03-27 22:08:43

标签: javascript google-chrome google-chrome-extension

我正在制作一个谷歌浏览器扩展程序,它会有一个弹出窗口,当按下收藏夹时会显示选项卡中链接的推荐 下面是我的代码。但它不起作用。如果我做错了,请告诉我

这是我的表现.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 ; 

 }

 }

1 个答案:

答案 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;安慰。核实!以下是您应该实现的逻辑:您应该从弹出脚本(它是一个新文件)发送一条消息,该消息将被内容脚本侦听器捕获,并且内容脚本侦听器会发送回引用者。