我正在使用Chrome扩展程序。我已经使用chrome.contextMenus.create
创建了一个菜单项,并且还在函数名称中传递了click。现在我想要做的是,当我点击上下文菜单项时,获取活动链接的textContent。我应该听什么类型和/或事件?我不知道textContent是否正确。让我试着说一下:当你在Google上进行查询时(让我们说" putty"为了举例),第一个打击是#34; PuTTY下载页面 - Chiark&#34 ;它指向一些URL。我想得到的是这个" PuTTy下载页面 - Chiark"而不是它的URL。
编辑:这是我到目前为止所做的:
chrome.contextMenus.create({'title': 'Add to mySU bookmarks', 'contexts': ['link', 'page'], 'onclick': mySUBookmark});
function mySUBookmark() {
var a = document.addEventListener('click', function() {
...
});
}
我想知道我是否走在正确的道路上。
此致 MTO
答案 0 :(得分:1)
您的点击处理程序会传递contextMenusInternal.OnClickData
info object,其中包含点击内容的某些属性(而不是实际对象本身)。对于链接元素,这包括linkUrl
属性,您可以使用该属性为元素创建元素选择器,并将其传递给您的内容脚本(可以访问页面DOM)。
这可能类似于以下内容(您可能需要更改为适用于您的扩展程序)
function mySUBookmark(info, tab) {
var elSelector = 'a[href="'+info.linkUrl+'"]';
console.log(elSelector);
// now send the selector to the content script on the page so it can use it
// to select the element from the page DOM and do whatever you want with the
// text / html of the element
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, { elSel: elSelector }, function(resp) {});
});
}
这些链接有助于理解所有这些内容的工作原理,