我正在使用一种幻灯片播放的网站,但几秒钟后未显示“下一个”链接。我想做一个脚本,该脚本在链接出现后立即单击。
我研究并发现了“突变”,但是我对javascript的了解很少。这就是我到目前为止所得到的。我要单击的链接在chrome中显示为:
a href="#" class="btn btn-step-active" id="btn-next-step">Next
代码:
function clickButton() {
document.getElementById('btn-next-step').click();
}
const app = document.querySelector('#btn-next-step');
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes) {
const nextStepAdded = [...mutation.addedNodes].some((node) => node.className === 'btn btn-step active');
if (nextStepAdded) {
clickButton();
}
}
});
});
observer.observe(app, { childList: true, subtree: true });
但是,这似乎不起作用,我收到错误消息“未能在mutationobserver上执行观察:参数1不是节点类型”。有什么想法吗?
编辑:看来错误是由于链接不存在而引起的...这就是我试图做的全部目的。但是我放置了一个父ID,该ID在页面加载时实际存在,现在可以正常工作!
答案 0 :(得分:1)
observer.observe
的第一个参数必须是一个节点,该节点是您要查找的节点的祖先,而不是节点本身。
类似的东西:
observer.observe(document.body, ....)