Rav*_*afi 5 javascript greasemonkey facebook
我试图在facebook中对user.js进行/ message页面,但看起来像在导航从/到/消息更改时,却没有注意到.它也出现在其他内部页面中.首先我认为它是由AJAX导航引起的,但URL改变了(不是散列部分),所以这是正常的导航,对吧?
这是我使用的测试页面:
// ==UserScript==
// @name Test
// @namespace none
// @description just an alert when page changes
// @include http*://www.facebook.com/*
// ==/UserScript==
alert(location.href);
Run Code Online (Sandbox Code Playgroud)
如何正确检测页面更改?
Firefox版本:6.0.2
Greasemonkey版本:0.9.11
And*_*y E 10
对于支持它的浏览器,包括Firefox 4+,Facebook利用HTML5 History API.此API允许使用该history.pushState()方法更改位置,但实际上不会发生导航.虽然页面似乎已经发生了变化,但所有发生的事情都是幕后的ajax调用,它改变了大部分内容.
如果要捕获此更改,则必须pushState()使用自己的函数代理该方法:
(function (old) {
window.history.pushState = function () {
old.apply(window.history, arguments);
alert(window.location.href);
}
})(window.history.pushState);
Run Code Online (Sandbox Code Playgroud)
有关历史API的更多信息,请访问https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history.
| 归档时间: |
|
| 查看次数: |
2098 次 |
| 最近记录: |