【发布时间】:2012-04-16 11:13:16
【问题描述】:
这是我第一次编写 Chrome 扩展程序。我希望它在每次加载 Facebook 页面时执行一些非常简单的 JavaScript。它正在做我想要的一切除了,由于某种原因,它只有在我点击刷新按钮时才会运行我的脚本。如果,例如我点击了 Facebook 徽标,或者我从通知中转到某个状态,脚本没有运行……直到我点击刷新。
这是我的清单:
{
"name": "Anti-social Reader",
"version": "1.0",
"description": "Defeats 'social reader' apps on Facebook, by letting you just see the news story directly without installing the app.",
"content_scripts": [
{
"matches": ["http://*.facebook.com/*", "https://*.facebook.com/*"],
"js": ["kill_social_reader.js"],
"run_at": "document_end",
"all_frames": true
}
]
}
我需要它等到 document_end 因为它正在修改加载页面的 DOM。我确定这很愚蠢……有什么想法吗?
【问题讨论】:
-
感谢您的回答。我检查了 mtk,因为他是第一个响应的 :) 这并不像为 DOM 更改添加监听器那么简单,因为我的脚本会修改 DOM 本身......所以我怀疑这会很糟糕。 :) 我尝试了 Amaan 的解决方案(不理解它),但它对我来说不太合适,但我可能做错了什么——我没有花任何时间调试它。无论如何,我认为我的基本问题已经得到解答,现在只需触发正确的事件即可。感谢您的回答!
-
请注意,对于主要网站(尤其是单页应用程序)来说,不进行整页重新加载而是进行状态转换变得越来越普遍。例如。 YouTube、特雷罗、推特。这是另一个使用 Chrome webNavigation API 和 tabs API 的解决方案:stackoverflow.com/a/21071357/72321
标签: javascript facebook google-chrome google-chrome-extension