aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
150楼#
发布于:2014-07-01 11:40
MDN 中不是写了么……
https://developer.mozilla.org/zh-CN/docs/Web/API/Window.onpopstate
调用history.pushState()或者history.replaceState()不会触发popstate事件. popstate事件只会在其他浏览器操作时触发, 比如点击后退按钮(或者在JavaScript中调用history.back()方法).

我还查了英文的以防翻译出错……
https://developer.mozilla.org/en-US/docs/Web/API/window.onpopstate
Note that just calling history.pushState() or history.replaceState() won't trigger a popstate event. The popstate event is only triggered by doing a browser action such as a clicking on the back button (or calling history.back() in JavaScript). And the event is only triggered when the user navigates between two history entries for the same document.

还是简单粗暴地监控按键事件然后延迟刷新 EWH 好了

真庆幸我从来不用百毒
不用操心这类屁事
hzzhaiqi
火狐狸
火狐狸
  • UID30112
  • 注册日期2009-08-18
  • 最后登录2015-09-15
  • 发帖数279
  • 经验180枚
  • 威望1点
  • 贡献值44点
  • 好评度28点
151楼#
发布于:2014-07-01 18:17
aaaa007cn:MDN 中不是写了么……
https://developer.mozilla.org/zh-CN/docs/Web/API/Window.onpopstate

我还查了英文的以防翻译出错……
https://developer.mozil...
回到原帖
我没看仔细。。。

监视节点的插入也是一种方法。这样就可以和自动翻页统一起来,只用写一次。
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
152楼#
发布于:2014-07-01 20:22
hzzhaiqi:我没看仔细。。。

监视节点的插入也是一种方法。这样就可以和自动翻页统一起来,只用写一次。
回到原帖
要和自动翻页联动的话
由自动翻页翻页完毕再触发一个自定义事件给 EWH 如何?
hzzhaiqi
火狐狸
火狐狸
  • UID30112
  • 注册日期2009-08-18
  • 最后登录2015-09-15
  • 发帖数279
  • 经验180枚
  • 威望1点
  • 贡献值44点
  • 好评度28点
153楼#
发布于:2014-07-01 21:12
aaaa007cn:要和自动翻页联动的话
由自动翻页翻页完毕再触发一个自定义事件给 EWH 如何?
回到原帖
自动翻页脚本一般都会有这个事件。Super_preloader 本身没有,我修改的 Super_preloaderPlus_one 已补上。

下面 3个分别是 AutoPagerize(uAutoPagerize)、Super_preloaderPlus_one、BaiduMonkeyW。
document.addEventListener("GM_AutoPagerizeNextPageLoaded", nextPageLoaded, false);
document.addEventListener("Super_preloaderPageLoaded", nextPageLoaded, false);
document.addEventListener("bm_NextPageLoaded", nextPageLoaded, false);
gsky916
小狐狸
小狐狸
  • UID28698
  • 注册日期2009-04-25
  • 最后登录2017-06-24
  • 发帖数94
  • 经验22枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
  • 社区居民
154楼#
发布于:2014-07-03 14:59
感谢hzzhaiqi的传送门,学习了。
我也发一下我在自用的脚本里写的用来对付百度ajax的方法。
Mutation events的效率太低了,现在的建议是使用observer来替代它。
//百度AJAX
function ajaxob() {
    //定义回调函数,处理百度通过ajax生成的新页面
    var ajax = function ajax() {dosomthing}
    //创建一个observer,通过观察网页标题变化来探测百度是否通过ajax发起搜索请求
    var observer = new MutationObserver(ajax);
    var config = {
        attributes: false,
        childList: true,
        characterData: false,
        subtree: false
    };
    var title = document.getElementsByTagName("title")[0];
    observer.observe(title, config);
}
//在页面完全加载完毕后,加载observer.
window.addEventListener("load", ajaxob, false);
P.S. mozest 那边死气沉沉的,难道各路大神都转移到这边来了?
hzzhaiqi
火狐狸
火狐狸
  • UID30112
  • 注册日期2009-08-18
  • 最后登录2015-09-15
  • 发帖数279
  • 经验180枚
  • 威望1点
  • 贡献值44点
  • 好评度28点
155楼#
发布于:2014-07-03 15:52
gsky916:感谢hzzhaiqi的传送门,学习了。
我也发一下我在自用的脚本里写的用来对付百度ajax的方法。
Mutation events的效率太低了,现在的建议是使用observer来替代它。
//百度AJAX
function ajax...
回到原帖
我在卡饭混的比较多。

你这种方法确实比较高效。可惜对翻页脚本无效。我当时在 BaiduSearchNoJump 脚本中是这样写的。触发的机会比你的多,但是同时支持自动翻页和不刷新页面。
function addMutationObserver(selector, callback) {
    var watch = document.querySelector(selector);
    if (!watch) return;
 
    var observer = new MutationObserver(function(mutations){
        var nodeAdded = mutations.some(function(x){ return x.addedNodes.length > 0; });
        if (nodeAdded) {
            // observer.disconnect();
            callback();
        }
    });
    observer.observe(watch, {childList: true, subtree: true });
}
 
// 添加下一页和不刷新页面的支持
addMutationObserver('#wrapper_wrapper', function(){
    dosomthing
});
gsky916
小狐狸
小狐狸
  • UID28698
  • 注册日期2009-04-25
  • 最后登录2017-06-24
  • 发帖数94
  • 经验22枚
  • 威望0点
  • 贡献值0点
  • 好评度2点
  • 社区居民
156楼#
发布于:2014-07-04 13:30
hzzhaiqi:我在卡饭混的比较多。

你这种方法确实比较高效。可惜对翻页脚本无效。我当时在 BaiduSearchNoJump 脚本中是这样写的。触发的机会比你的多,但是同时支持自动翻页和不刷新页面。function addMutationObser...
回到原帖
我这段代码是用在自用的baidumonkey脚本里的,因为它有独立的翻页处理,因此我没有考虑和其他翻页脚本一起用的问题。对于翻页脚本,考虑比较周到的作者一般都会抛出一个自定义事件来方便其它脚本,这也是比较好的处理方式。当然不是所有的脚本都有这样的事件,监听node可以作为最后的手段。
hzzhaiqi
火狐狸
火狐狸
  • UID30112
  • 注册日期2009-08-18
  • 最后登录2015-09-15
  • 发帖数279
  • 经验180枚
  • 威望1点
  • 贡献值44点
  • 好评度28点
157楼#
发布于:2014-07-04 17:59
gsky916:我这段代码是用在自用的baidumonkey脚本里的,因为它有独立的翻页处理,因此我没有考虑和其他翻页脚本一起用的问题。对于翻页脚本,考虑比较周到的作者一般都会抛出一个自定义事件来方便其它脚本,这也是比较好的处理方式。当然不是所有的脚本都有...回到原帖
好吧,我喜欢用一种通用的方法,至于效率什么的,有效且过得去就行了。
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-04-17
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
158楼#
发布于:2014-12-31 11:19
FF34,GM2.3,L锁定功能失灵了,灰色不可点,望作者修复!
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
159楼#
发布于:2014-12-31 15:48
tulip17:FF34,GM2.3,L锁定功能失灵了,灰色不可点,望作者修复!回到原帖
抱歉,自己早就修改了,一直没放出来……已更新顶楼。
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-04-17
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
160楼#
发布于:2014-12-31 16:14
hzhbest:抱歉,自己早就修改了,一直没放出来……已更新顶楼。回到原帖
感谢!很方便实用的脚本,多数时候都用它,火狐自身的查找用的少。
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-04-17
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
161楼#
发布于:2014-12-31 16:19
hzhbest:抱歉,自己早就修改了,一直没放出来……已更新顶楼。回到原帖
不对呀,更新完怎么彻底失灵了,根本不显示查找框
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-04-17
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
162楼#
发布于:2014-12-31 16:25
tulip17:不对呀,更新完怎么彻底失灵了,根本不显示查找框回到原帖
晕,原来是没下载完成,gf网站打开费劲,装脚本点击半天没反应,之后又弹出好多安装框,后来还是先下载回来,直接替换gm脚本目录里的ewh,一看才10几K,替换完正常了。
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-04-17
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
163楼#
发布于:2014-12-31 20:47
hzhbest:抱歉,自己早就修改了,一直没放出来……已更新顶楼。回到原帖
功能是正常了,但,又出现了内存暴涨现象,跟我以前反馈过的MPIV+GM+alertbox导致内存暴涨现象一样,10分钟涨100多M,停用你脚本就不再涨
MPIV作者发现了问题所在,归根结底是GM问题,但MPIV改了点代码后也能解决,参考我这贴下面的问题说明和链接,希望你也能先暂时解决并且向GM作者反馈此问题,GM不解决的话其他脚本也会出现类似内存泄漏现象
https://www.firefox.net.cn/read-49678
tulip17
千年狐狸
千年狐狸
  • UID34021
  • 注册日期2010-09-17
  • 最后登录2024-04-17
  • 发帖数980
  • 经验678枚
  • 威望1点
  • 贡献值420点
  • 好评度51点
  • 社区居民
  • 忠实会员
164楼#
发布于:2014-12-31 22:38
MPIV12月9号的更新就是解决我上面反映的问题
游客

返回顶部