javascript - 在 Chrome 扩展内容脚本中,我必须在处理文档之前等待 document.ready 吗?

标签 javascript jquery google-chrome google-chrome-extension

具体来说,我正在评估页面上的所有图像以查看它们是否具有特定属性,然后根据这些属性向 DOM 添加一些新的 。在执行这些修改之前,我是否必须等待 document.ready 触发才能确保 Chrome 已加载所有必要的 DOM 部分?

我遇到的问题是,有时 document.ready 需要很短的时间才能触发,而用户已经在浏览页面,想知道为什么我的扩展还没有任何效果。该问题通常只持续片刻,但足以令人恼火。

如果我不费心等待 document.ready,而是立即处理文档,似乎一切正常;但我想知道我是不是走运了。

最佳答案

其实,你不必等待。您可以马上处理 Content Scripts .只需确保您没有在 run_at 属性中使用 document_start

document_end 中,文件在 DOM 完成后立即注入(inject),但在图像和框架等子资源加载之前。 document_idle(默认值)发生得更晚。

{
  "name": "My extension",
  ...
  "content_scripts": [
    {
      "matches": ["http://www.google.com/*"],
      "css": ["mystyles.css"],
      "js": ["jquery.js", "myscript.js"],
      "run_at": "document_end"
    }
  ],
  ...
}

关于javascript - 在 Chrome 扩展内容脚本中,我必须在处理文档之前等待 document.ready 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113318/

相关文章:

html - 媒体查询不适应移动浏览器中的布局

javascript - 包装 nside td 在 jQuery 中不起作用

jquery - 当用户在浏览器中更改选项卡时,Javascript 中是否会触发一个事件

javascript - 无法执行 x Axis[0].set Categories 和 series[0].setData

jquery - Yii 异步 jsonp 请求

javascript - 如何获取 slider wordpress 中的幻灯片数量/实际数量

javascript - 如何调用数千个AJAX嵌套的GET请求?

java - Chrome 用于测试无法在 Docker 容器中启动

javascript - 谷歌未在谷歌脚本中定义 - 错误

javascript - 存储获取的数据以避免每次重新加载组件时都获取它