当前位置: 首页 > 面试题库 >

将元素添加到页面时如何通知我?

萧德庸
2023-03-14
问题内容

我希望我选择的功能在将DOM元素添加到页面时运行。这是在浏览器扩展的上下文中,因此该网页独立于我运行,并且我无法修改其来源。我在这里有什么选择?

我猜,从理论上讲,我可以setInterval()用来不断搜索元素的存在并在元素存在的情况下执行我的操作,但是我需要一种更好的方法。


问题答案:

警告!

这个答案现在已经过时了。DOM级别4引入了MutationObserver,可以有效替代已弃用的突变事件。,以获得比此处提供的解决方案更好的解决方案。说真的不要每100毫秒轮询一次DOM。这会浪费html" target="_blank">CPU功率,而您的用户会讨厌您。

由于突变事件在2012年已弃用,并且您无法控制插入的元素,因为它们是由其他人的代码添加的,因此您唯一的选择是连续检查它们。

function checkDOMChange()
{
    // check for any new element being inserted here,
    // or a particular node being modified

    // call the function again after 100 milliseconds
    setTimeout( checkDOMChange, 100 );
}

调用此函数后,它将每100毫秒运行一次,即1/10(十分之一秒)。除非您需要实时元素观察,否则就足够了。



 类似资料:
  • 问题内容: 为什么使用此Java代码会出现编译器错误? 其中“ SubFoo”是实现Foo的具体类,而Foo是接口。 我收到此代码错误: 在第3行上:“无法实例化ArrayList <?扩展了Foo>” 在第4行上:“类型List 中的方法add(capture#1-of扩展Foo)不适用于参数(SubFoo)” 更新: 感谢Jeff C,我可以将第3行更改为“ new ArrayList ();

  • 本文向大家介绍html5-canvas 如何将Html5画布元素添加到网页,包括了html5-canvas 如何将Html5画布元素添加到网页的使用技巧和注意事项,需要的朋友参考一下 示例 HTML5-Canvas ... 是Html5元素。 大多数现代浏览器(Internet Explorer 9+)支持。 是默认情况下透明的可见元素 默认宽度为300px,默认高度为150px。 需要JavaS

  • 问题内容: 如何将事件添加到元素? 我可以用吗: 为了这? 问题答案: 不,你不能。最简单的方法是将函数调用直接放在元素之后 例: 或者-甚至更好-就在: …因此它不会阻止以下内容的加载。

  • 问题内容: 如何使用itext从html源向pdf添加标头? 当前,我们扩展了PdfPageEventHelper并覆盖了这些方法。工作正常,但是当我进入2个以上页面时,它将引发RuntimeWorkerException。 问题答案: 通常, 禁止 在事件中添加内容。这是 禁止 添加内容到的对象。您应该使用而 不是 文档在方法中添加页眉和页脚。此外:通过一遍又一遍地解析HTML,您正在浪费大量C

  • 我试图理解为什么在我试图显示从网站获取的项目时会出现错误。我也在使用谷歌chrome浏览器。 这是我代码的其他部分 每当我使用"chromeDriver.FindElement(By.ID(something.link.text))。单击();",它会给出一个错误。我不能显示我提取的数据。 在错误消息中,它显示“OpenQA.Selenium.StaleElementReferenceExcept

  • 问题内容: 在下面的代码中,我希望用户悬停跨度时出现工具提示,我该怎么做?我不想使用任何链接。 问题答案: 这是简单的内置方法: 这为您提供纯文本工具提示。如果要使用格式丰富的HTML的丰富工具提示,则需要使用库来完成。幸运的是,这些工作量很大。