【发布时间】:2014-02-03 01:44:46
【问题描述】:
从去年的某个时候开始,YouTube 就让每个页面实际上并没有加载一个全新的页面,而主要只是重新加载 div#content 中的内容。当您单击 YouTube 中的链接并看到页面顶部的红色加载栏时,您会注意到这一点。
我有一个修改 YouTube 上元素的 Greasemonkey 脚本,但现在 YouTube 不会重新加载整个页面,Greasemonkey 脚本不再在每个“新”页面上触发。如何让 Greasemonkey 脚本在我加载到 YouTube 上的每个“新”页面上触发?
我在这个 Greasemonkey 脚本中使用 jQuery。我尝试使用 .on() 和 DOMNodeInserted 之类的函数,但我找不到正确的组合使其正常工作。使用我一直在使用的事件监听器,我最终会为每次页面加载运行我的脚本数百次,例如:
$('div#page').on('DOMNodeInserted', 'div#content', function() { });
我正在考虑的另一个解决方案是让 YouTube 上的所有链接都像正常一样加载页面,而不是他们这样做的新方式。
【问题讨论】:
-
将事件监听器附加到 div#content。
-
@Mike:这是一个不错的答案,如果你提供一个简短的代码示例
-
是的,我正在寻找一些示例代码。我知道我需要一个事件监听器,但我找不到合适的“组合”来让它在 YouTube 上正常工作。我以前在其他网站上做过,但 YouTube 似乎有点不同。
-
div 没有更改事件,因此您最好的解决方案似乎是使用间隔来检查内容是否已更改。 Here's some code someone else wrote, I'm not reinventing the wheel on this one.
-
是否也可以只关注网址更改?可能是这样的stackoverflow.com/questions/2161906/…
标签: javascript jquery html youtube greasemonkey