内部脚本完全加载后如何运行脚本?

Posted

技术标签:

【中文标题】内部脚本完全加载后如何运行脚本?【英文标题】:How do I run a script after internal scripts are fully loaded? 【发布时间】:2012-08-28 07:38:47 【问题描述】:

我正在尝试在 Facebook 侧边栏聊天列表中隐藏特定的人。

我的第一次尝试是尝试替换聊天栏中的用户名,但简单的.replace 不起作用,因为聊天栏是单独加载的,并且在页面本身加载很久之后。

聊天加载后有什么方法可以运行 Greasemonkey 脚本吗?

我听说过一些关于 unsafeWindow 功能的信息,但我不确定我是否可以在这里应用它,如果可以,如何应用。

unsafeWindow.hidePerson = function() 
    document.body.innerhtml = document.body.innerHTML.replace(/Firstname Lastname/g, '' );


unsafeWindow.hidePerson();

【问题讨论】:

【参考方案1】:

回答“内部脚本完全加载后运行脚本”的问题,见this answer(问题场景与AJAX场景相同)。


但是,你的情况有几件事:

    您的问题“I'm trying to hide specific people in the Facebook sidebar chat list”已被 Facebook 覆盖!

    见"Can I turn chat on for just a few friends?" 按照那里的说明,您可以:

    只隐藏您指定的人 或者,只显示你指定的人 或者,完全关闭聊天

    不要尝试像那样设置innerHTML;您将破坏页面(事件侦听器将被丢弃等)。

    unsafeWindow 在这里不是问题,也不需要。

    如果您的意思是我没有涵盖的内容,请参阅 this page、this page 和 this page。

    然后编辑您的问题(或提出新问题),并至少包含您想要影响的聊天部分的 HTML sn-p 以及相同的屏幕截图。

【讨论】:

感谢 Brock 非常彻底的回答!即使我不需要在这里应用所有帮助,您的帮助也会非常有用:)

以上是关于内部脚本完全加载后如何运行脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在特定节点下添加内部 HTML

Chrome 扩展内容脚本在页面刷新之前未加载

使用固定的内部命令参数运行脚本以包含 Qwebengine pepflashplayer

WSGI 脚本无法作为 Python 模块加载——500 内部服务器错误

页面完全呈现后运行 javascript

在所有字体完全加载后运行插件,使用 WebFontLoader