Javascript 无法在受支持的Microsoft Edge版本上工作
我有下面的代码,它利用了mutationobserver,它在浏览器chrome、firefox、opera中工作,但不在浏览器边缘Javascript 无法在受支持的Microsoft Edge版本上工作,javascript,html,css,browser,microsoft-edge,Javascript,Html,Css,Browser,Microsoft Edge,我有下面的代码,它利用了mutationobserver,它在浏览器chrome、firefox、opera中工作,但不在浏览器边缘 var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; var observer = new MutationObserver(function(mutations) { mutati
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
if(mutation.target.innerHTML == 'Online - Chat Us'){
//if button text changes from "Offline" to "Online - Chat Us"
if(mutation.removedNodes[0].nodeValue === 'Offline' && mutation.addedNodes[0].nodeValue === 'Online - Chat Us'){
//change top button to "Online - Chat Us" && false the disabled attribute.
document.getElementById('mySecondButton').innerHTML = mutation.addedNodes[0].nodeValue;
document.getElementById('mySecondButton').disabled = false;
}
}
}else if(mutation.type === 'characterData'){
//console.log(mutation);
}
});
});
仅在调试器的边缘浏览器中,我收到以下错误:SCRIPT5007:SCRIPT5007:无法获取未定义或空引用的属性“nodeValue”,该属性正在引用这行代码if(mutation.target.innerHTML==='Chat Now'){
从下面的图表中,我可以看出我使用的是受支持的版本
edge浏览器版本的屏幕截图
在Edge中,innerHTML、innerText和textContent更改导致的不是一条而是两条变异记录:一条用于删除旧节点,另一条用于插入新节点。所有其他浏览器只有一条变异记录,其中包含一条删除的节点和一条插入的节点。我对脚本进行了一些空检查,以缩小变异范围离子只记录到一个,很好。你的调试器显示了什么吗?(F12)@calculuswhiz我收到以下错误:SCRIPT5007:SCRIPT5007:无法获取未定义或空引用的属性'nodeValue',如果(mutation.target.innerHTML=='Chat Now',它将引用此行{想知道它是否与内部Html有关你在做什么来触发突变?@calculuswhiz只要跨度内的文本发生更改,当前就会触发它。我将用for循环替换foreach..祝贺。我建议你在48小时后尝试将自己的答案标记为这个问题的可接受答案,当它可供mark使用时。它可以在将来帮助其他社区成员解决类似问题。感谢您的理解。