【发布时间】:2014-07-02 13:36:12
【问题描述】:
我即将完成我的 Chrome 扩展程序。我有一两件事要做。其中之一是从内容脚本向后台脚本发送消息。我写了以下内容,但这并不是我想要的。
content.js
var a=document.getElementsByTagName('a');
for (i=0,len=a.length;i<len;i++) {
a[i].addEventListener('contextmenu', function() {
var linkTitle = this.getAttribute('title').trim();
var linkUrl = this.getAttribute('href');
if ((linkTitle != null) && (linkTitle.length > 0)) {
chrome.extension.sendMessage({action:'bookmarkLink', 'title':linkTitle, 'url': linkUrl}, function(msg) {
alert('Messages sent: '+action+' and '+linkTitle+' also '+linkUrl);
});
}
});
};
background.js
chrome.contextMenus.create({'title': 'Add to mySU bookmarks', 'contexts': ['link'], 'onclick': mySUBookmarkLink});
function mySUBookmarkLink(info, tab) {
chrome.extension.onMessage.addListener(function(msg, sender, sendResponse) {
if (msg.action == 'bookmarkLink') {
chrome.storage.sync.set({'title': msg.linkTitle, 'url': msg.linkUrl}, function(msg) {
alert('Saved '+msg.linkTitle+' to bookmarks');
});
}
});
};
我的问题是:
- 在第一个代码块中,只要我右键单击链接,它就会提醒 Saved undefined 到书签,而据我所知,它应该只在右键单击,当我单击上下文菜单时,第二个代码块应该提醒 Saved 到书签。我错过了什么或做错了什么?
- 我可能没有正确使用参数(我对扩展开发和一般的 Javascript 相当陌生)。以上看起来好吗?
提前谢谢你,
K.
【问题讨论】:
标签: javascript google-chrome-extension