Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript注入元素更改侦听器?_Javascript_Xcode_Code Injection_Javascript Injection - Fatal编程技术网

Javascript注入元素更改侦听器?

Javascript注入元素更改侦听器?,javascript,xcode,code-injection,javascript-injection,Javascript,Xcode,Code Injection,Javascript Injection,我们使用KioWare,并希望触发一个本地应用程序(通过keybind我们可以做到这一点)。我们只想在特定页面元素从“blahblah hidden”更改为“blahblah”时触发keybind,并在该更改再次发生时重复 我已经掌握了javascript的基本知识,希望有人能给我指出正确的方向。我尝试过使用while(true)并运行元素的重复检查,但这会导致浏览器出现白色屏幕,假设在无限循环期间没有其他东西可以处理 如果有一种方法可以简单地“观察”或“倾听”元素的变化,那就太好了。同样,我对

我们使用KioWare,并希望触发一个本地应用程序(通过keybind我们可以做到这一点)。我们只想在特定页面元素从“blahblah hidden”更改为“blahblah”时触发keybind,并在该更改再次发生时重复

我已经掌握了javascript的基本知识,希望有人能给我指出正确的方向。我尝试过使用while(true)并运行元素的重复检查,但这会导致浏览器出现白色屏幕,假设在无限循环期间没有其他东西可以处理


如果有一种方法可以简单地“观察”或“倾听”元素的变化,那就太好了。同样,我对javascript有着真正的基础知识,如果有任何帮助,我将不胜感激。

您可以创建一个自定义事件,并在更改dom中的类名时发送它。即

const事件=新事件('mycustomevent');
//倾听事件。
elem.addEventListener('mycustomevent',函数(e){/*在这里执行逻辑*/},false);
//发送事件。
要素分派事件(事件);//更改图元可见性时插入此行
如果元素类名不是由您更改的,显然您必须使用
MutationObserver

//选择将观察到突变的节点
const targetNode=document.querySelector('.blahblah hidden');
//观察者选项(要观察哪些突变)
const config={attributes:true,childList:false,subtree:false};
//观察到突变时执行的回调函数
常量回调=函数(mutationsList,observer){
//对IE 11使用传统的“for循环”
for(让突变列表突变){
if(mutation.type==='attributes'){
log('修改了'+mutation.attributeName+'属性');
//你的逻辑在这里吗
}
}
};
//创建链接到回调函数的观察者实例
const observer=新的MutationObserver(回调);
//开始观察目标节点是否存在已配置的突变
observer.observe(targetNode,config);
//稍后,你可以停止观察
observer.disconnect();

您正在寻找事件侦听器: