如何';获取';通过javascript仅生成3秒钟的元素?
我的问题主要是我想点击一个出现在一个只有3秒钟可用的如何';获取';通过javascript仅生成3秒钟的元素?,javascript,Javascript,我的问题主要是我想点击一个出现在一个只有3秒钟可用的中的。。。 有显示:none,因此我可以随时显示它,但是是由我无权访问的其他js文件生成的。我无法更改原始js文件(例如,为了给我更多的时间),因为我只使用用户脚本与页面交互!(不是我自己的页面) 到目前为止,我尝试在js代码中定位生成的按钮的id或类,但是js被缩小了。。。所以没有运气。。。 我还尝试使用在这3秒钟内为该按钮生成的临时类,然后单击它。。。通过做一个屏幕截图,手动输入类,然后在控制台中运行一点代码,在这3秒钟内点击它。。。没有运
中的
。。。
有显示:none
,因此我可以随时显示它,但是
是由我无权访问的其他js文件生成的。我无法更改原始js文件(例如,为了给我更多的时间),因为我只使用用户脚本与页面交互!(不是我自己的页面)
到目前为止,我尝试在js代码中定位生成的按钮的id或类,但是js被缩小了。。。所以没有运气。。。
我还尝试使用在这3秒钟内为该按钮生成的临时类,然后单击它。。。通过做一个屏幕截图,手动输入类,然后在控制台中运行一点代码,在这3秒钟内点击它。。。没有运气
到目前为止,我认为问题在于我对这种情况的处理方式,所以我没有在这里编写任何代码。。。
请告诉我您对此的想法…将您的按钮检测代码放入一个触发频率足够高的容器中,以便在按钮存在时触发:
// note: this is just pseudocode
var interval = setInterval(function() {
// look for button
if(buttonFound) {
clickButton();
clearInterval(interval);
}
}, 300);
如果您想对DOM中的更改做出反应,可以添加(在您的情况下,添加到父元素)
没有任何代码,很难提供更好的答案
请扔掉一个代码笔,或者JSFIDLE,或者一些我们可以用来帮助您解决问题的代码+我从来不知道有这样的事存在。和往常一样,IE支持不如stellar@WalterStabosz,如果您想要支持IE 9或IE 10,您可以使用它,但它在DOM4中被弃用。
(function () {
"use strict";
var target = document.getElementById("hiddenElement"),
observer = new MutationObserver(function(mutations) {
mutations.forEach(function(value, index, array) {
console.log(value.type);
console.dir(value.addedNodes); // return node list
console.dir(value.removedNodes);
// put here your logic
});
});
observer.observe(target, {
childList: true,
subtree: true,
characterData: true,
characterDataOldValue: true
});
}());
(function () {
"use strict";
var newEle = document.createElement("input"),
hiddenElement = document.getElementById("hiddenElement");
newEle.type = "button";
newEle.value = "click";
newEle.addEventListener("click", function(e) {
alert("Generated only for 3 second");
});
hiddenElement.appendChild(newEle);
hiddenElement.style.display = "block";
setTimeout(function() {
hiddenElement.style.display = "none";
hiddenElement.removeChild(newEle);
}, 3000);
}());