单击菜单时触发事件
Fire an event when menu is clicked
我正在做一个Chrome扩展。我使用chrome.contextMenus.create
创建了一个菜单项,并传入了函数名以在单击时触发。现在我想做的是,在点击上下文菜单项时获取活动链接的textContent。我应该听什么类型和/或事件?我不知道textContent是否正确。让我试着描述一下:当你在Google上进行查询时(为了方便起见,让我们说"putty"),第一个命中是"putty下载页面- Chiark",它指向某个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() {
...
});
}
我想知道我是否走在正确的道路上。
问候,
你的点击处理程序,被传递一个contextMenusInternal.OnClickData
info对象,它有一些被点击的属性(不是实际的对象本身)。对于链接元素,这包括一个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) {});
});
}
这些链接可以帮助我们理解这些东西是如何工作的,
- 上下文菜单示例
- Chrome扩展内容脚本
- 从后台发送消息到上下文脚本
相关文章:
- 使用java脚本更改onClick事件中菜单选项卡的颜色
- 下拉菜单大小已更改事件
- jQuery与导航菜单上的mouseover事件冲突.
- 单击事件打开两个弹出菜单
- Javascript问题与下拉菜单上的单击事件有关
- 响应菜单问题-如何在移动环境中处理HREF和onclick事件
- 关闭 jQuery 中的菜单事件
- API Google Maps Javascript在上下文菜单中调用事件侦听器
- 用于关闭和打开的Jquery事件选择下拉菜单,而不是在更改时
- 在聚合物的子菜单标题中添加事件
- 如何在Jquery mobile中处理动态选择菜单事件
- 如果元素是在循环中创建的,则引导下拉菜单不会触发单击事件
- 显示和隐藏上下文菜单时的 Jstree 调用事件
- 单击事件在响应菜单中不起作用
- 引导明细菜单:跳回主菜单事件
- 事件的动态网格菜单
- 单击文本框的右键单击上下文菜单的“删除”后触发的事件
- 将事件处理附加到菜单和按钮
- 关闭菜单,单击带有事件侦听器和父节点的正文
- javascript onchange vs onkeyup事件