首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YouTube不触发history.pushState

YouTube不触发history.pushState
EN

Stack Overflow用户
提问于 2015-05-12 18:54:40
回答 1查看 1K关注 0票数 2

我试图通过使用YouTube来检测history.pushState上的页面更改,但它似乎从未触发过。我最终想要让这个脚本从Tamper猴子/Greasemonkey脚本中运行,为此,我理解您需要将脚本插入到实际页面中,我已经这样做了,但没有结果:

代码语言:javascript
复制
html = 
    "var oldState      = history.pushState;"+
    "history.pushState = function() {" +
        "alert('url changed');" +
        "return oldState.apply(this);" +
    "}";

var head = document.getElementsByTagName("body")[0];         
var script = document.createElement('script');
script.type = 'text/javascript';
script.innerHTML = html;
head.appendChild(script);

我还尝试从调试控制台运行相同的代码:

代码语言:javascript
复制
var oldState      = history.pushState;
history.pushState = function() {
    alert('url changed');
    return oldState.apply(this);
};

但这似乎也做不到。有人知道这是怎么回事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 03:09:17

YouTube使用spfjs来操作pushState。然而,它通常在你可以猴子补丁之前抓住它的功能。这就是为什么你正在经历这个问题。

要么在加载spf.js之前在页面上移动猴子补丁脚本,要么查找像spfdone这样的spf事件来检测更改。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30199242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档