2014-03-27 64 views
0

我正在制作一个谷歌浏览器扩展程序,它将弹出一个窗口,当按下图标 时,它会显示标签中链接的推荐链接。我的代码。但它不工作。请让我知道是我这样做不对获取谷歌浏览器扩展中链接的推荐链接

这是我manifes.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

你对于你得到的错误信息有相当的了解。你在哪里可以看到错误消息?显示与您的扩展背景有关的错误:extenions >>您的扩展>>在新窗口中检查视图background.html >>控制台选项卡。显示在特定选项卡中发生的错误:打开开发人员工具(按F12)>>控制台选项卡。我希望在阅读错误消息后,您忘记了过时的onRequest,并且找到正确的消息传递方法。 –

+0

感谢这个建议,它帮助我纠正了一些错误,并将过时的sendRequest和onRequest更改为sendMessage和onMessage。但它仍然不起作用。 Stil它不显示结果。我是否以正确的方式抽象扩展链接的引用? – user3470500

+0

你能更新你的源代码吗? –

回答

0

我的帖子太长,所以我张贴在这里:首先我建议你重命名graph.js到background.js和main.html到popup.html。在content_scripts的清单文件中有一个不存在的“页面”项目 - 检查文档 - 删除它。其次为了调试目的,在内容脚本和后台中都记录文档和document.referrer。您会在内容脚本中看到它的工作正常,但在后台页面中会出现错误。虽然你没有声明background.html,它会自动创建。你可以检查这个背景页面:chrome >>扩展>>你的扩展>> inspect views:background >> Elements。当你在background.js中引用'document'时,你确实参考了这个html,而不是popup.html。这就是为什么你的解决方案无法工作,你必须在>>检查视图:背景>>控制台上出现错误。核实!以下是您应该实现的逻辑:您应该从弹出脚本(它是一个新文件)发送消息,该消息将被内容脚本侦听器捕获,并且内容脚本侦听器将发送引用。

+0

感谢您的回应,实际上这个评论让我清除了很多我的概念。 – user3470500