javascript - 使用 getAttribute() 遇到问题
问题描述
我需要找到包含我选择的文本的元素的 id,但我一直未能找到一种方法来做到这一点。看起来问题在于您不能在窗口对象上使用 getAttribute 方法。我正在使用与事件页面通信的内容脚本来执行它。这是我的内容脚本:
let element = window.getSelection().anchorNode;
let finder = element.getAttribute('id');
alert(finder.toString()); //test
这是我的活动页面:
chrome.contextMenus.create({ id: "M", title: "Feature One", contexts: ["selection"] });
chrome.contextMenus.create({ id: "ATCB", title: "Feature Two", contexts: ["selection"] });
chrome.contextMenus.onClicked.addListener(function(clickData){
if (clickData.menuItemId == "M" && clickData.selectionText){
//var one = clickData.selectionText;
chrome.tabs.executeScript({
file: 'contentScript.js'
});
}
if (clickData.menuItemId == "ATCB" && clickData.selectionText){
var two = clickData.selectionText;
alert(two + " two"); //test
}
});
这是我的清单文件:
{
"manifest_version": 2,
"name": "Menu",
"version": "1.0",
"icons": {
"128": "icon.png",
"48": "icon.png",
"16": "icon.png"
},
"browser_action": {
"default_icon": "icon.png"
},
"background": {
"scripts": ["eventPage.js"],
"persistent": false
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["contentScript.js"]
}],
"permissions": [
"contextMenus",
"tabs",
"activeTab",
"file://*/*",
"https://*/*",
"http://*/*"
]
}
感谢您阅读我的问题
解决方案
这可以通过 document.activeElement.id 来完成; https://www.w3schools.com/jsref/prop_document_activeelement.asp
推荐阅读
- javascript - jquery窗口加载功能在加载时不做任何事情
- javascript - NodeJS - 带有数组承诺的 Promise.all() 不会按预期返回
- go - Goroutine 存储通道值没有死锁
- java - 比较两个字符串并找出多余的字符
- kubernetes - istio 允许在没有任何服务条目的情况下连接到 HTTPS url
- python - 使用 ElementTree 解析 Python XML:findall 返回空列表
- c# - 在 OLEDBCommand 查询上打开 Excel 工作表
- javascript - 为什么我的反向数组函数的输出与输入相同?
- javascript - 纽约市报道用 babel mocha 为空
- java - Guice - 如何制作一个没有 args 构造函数单例的类并让变量自动注入?