在网页上单击任何元素时触发 js 函数
triggering js function when any element is clicked on the webpage
我正在编写一个chrome扩展,我想将网页上单击的元素传递给js函数,该函数将计算css选择器。
我无法弄清楚在网页上单击任何元素时如何触发 JS 函数。
在内容脚本中添加一个事件侦听器,用于检查用户单击,捕获目标元素,然后使用 chrome.runtime.sendMessage 将数据发送到后台页面或其他目标。
内容.js
document.addEventListener('click', function(e){
var target = e.target || e.srcElement;
var attributes = Array.prototype.slice.call(target.attributes).map(function(i) {
return [String(i.name)+": "+String(i.value)]
})
chrome.runtime.sendMessage({method:"captureElement",data:attributes});
},true)
背景.js
chrome.tabs.onActivated.addListener(function(tabId, changeInfo, tab) {
// alert(changeInfo.url);
chrome.tabs.executeScript(null, {"file": "content.js"});
});
var container = []
chrome.runtime.onMessage.addListener(function(message){
if(message.method == "captureElement"){
container.push(message.data)
alert(message.data)
}
})
manifest.json
{
"name": "stack practice",
"version": "1.0",
"description": " content script and background page communication",
"background": {
"scripts": ["background.js"]
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"]
}],
"permissions": [
"http://*/",
"contextMenus",
"activeTab"
],
"manifest_version": 2
}
可以使用事件参数目标属性,如下所示:
document.body.addEventListener('click', function (e) {
console.log(e.target);
});
在MDN查看完整的描述:Event.target
您可以创建一个函数并在单击任何元素时调用它,将元素 id 作为参数传递,在获得元素的 id 后,您可以做任何您想做的事情。
在div 内单击时,简单的代码将给出警报消息-
事件处理程序可以绑定到任何<div>
:
<div id="target">
Click here
</div>
<div id="other">
Click here
</div>
$( "#target" ).click(function() {
alert( "target div is called." );
});
相关文章:
- 当js函数's已执行
- 调用php数组中的JS函数
- 为JS函数添加延迟
- 我如何制作一个JS函数,它可以从相似的原始颜色双向更改为某个颜色
- 使用JS函数来使用另一个函数的语法?node.js
- 将JS函数传递给Emscripten生成的代码
- 是否可以在使用headerphp函数后自动调用JS函数
- 如何在.js函数中检索来自其他模板的表单的目标值
- 简单的JS函数.需要对变量进行澄清
- 无法识别从php创建的Js函数
- 如何将对象传递给这个js函数
- 全局窗口热键在最小化chrome窗口时调用js函数
- 将重定向URL链接添加到JS函数
- 从PHP调用JS函数不起作用
- js函数堆栈传入变量,.hide()不起作用
- 当运行JS函数时,如何在c#中的Edgejs中获取错误文本
- 如何让JS函数自行执行
- 使用默认js函数的javascript中的日期的第二天
- 如何从页面中的jquery调用angular js函数控制器
- 从.js文件调用html中的js函数