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 好了 真庆幸我从来不用百毒 不用操心这类屁事 |
|
|
151楼#
发布于:2014-07-01 18:17
aaaa007cn:MDN 中不是写了么……我没看仔细。。。 监视节点的插入也是一种方法。这样就可以和自动翻页统一起来,只用写一次。 |
|
152楼#
发布于:2014-07-01 20:22
|
|
|
153楼#
发布于:2014-07-01 21:12
aaaa007cn:要和自动翻页联动的话自动翻页脚本一般都会有这个事件。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); |
|
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 那边死气沉沉的,难道各路大神都转移到这边来了? |
|
155楼#
发布于:2014-07-03 15:52
gsky916:感谢hzzhaiqi的传送门,学习了。我在卡饭混的比较多。 你这种方法确实比较高效。可惜对翻页脚本无效。我当时在 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 }); |
|
156楼#
发布于:2014-07-04 13:30
|
|
157楼#
发布于:2014-07-04 17:59
|
|
158楼#
发布于:2014-12-31 11:19
FF34,GM2.3,L锁定功能失灵了,灰色不可点,望作者修复!
|
|
159楼#
发布于:2014-12-31 15:48
|
|
|
160楼#
发布于:2014-12-31 16:14
|
|
161楼#
发布于:2014-12-31 16:19
|
|
162楼#
发布于:2014-12-31 16:25
|
|
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 |
|
164楼#
发布于:2014-12-31 22:38
MPIV12月9号的更新就是解决我上面反映的问题
|
|