Skip to content

Commit

Permalink
小幅调整
Browse files Browse the repository at this point in the history
  • Loading branch information
ywzhaiqi committed Aug 21, 2014
1 parent 9577707 commit 7c24a03
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 46 deletions.
95 changes: 50 additions & 45 deletions BaiduSearchNoJump/BaiduSearchNoJump.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,20 @@
// updateURL https://userscripts.org/scripts/source/161812.meta.js
// downloadURL https://userscripts.org/scripts/source/161812.user.js
// @icon http://tb.himg.baidu.com/sys/portrait/item/d4346e6f65313332ac06
// @version 2014.07.31
// @version 2014.08.19
// @grant GM_xmlhttpRequest
// @run-at document-end
// @note 2014-08-19,小幅调整
// @note 2014-07-23,增加新的链接选择器 a[href^="//www.baidu.com/link?url="]
// @note 2014-06-10,放弃原服务器解析的方法,改用 HEAD 方式。
// @note 2014-05-28,增加对百度不刷新页面的支持
// @note 2014-05-24,增加对翻页脚本的支持
// ==/UserScript==

// 下一页的支持有2种方式(已不准确)
// 0 对 Super_preloaderPlus_one、AutoPagerize、uAutoPagerize、 BaiduMonkeyW 脚本的支,准确、资源消耗相对更小
// 1 对所有脚本都适用,但不准确、消耗相对较大。如果非上面的几个脚本,建议用这个。

// var checkNextPageMethod = 0;

var locationHref = location.href;

function decode(url,target){
function decode(url, target){
// 原方法,已失效
// GM_xmlhttpRequest({
// method: "GET",
Expand All @@ -54,55 +50,20 @@ function decode(url,target){
// console.log('111', newUrl);
target.setAttribute('href', newUrl);
}
})
});
}

function checkDocument(doc) {
if (!doc) doc = document;
var links = doc.querySelectorAll('a[href^="http://www.baidu.com/link?url="], a[href^="//www.baidu.com/link?url="]');
var links = doc.querySelectorAll('a[href*="www.baidu.com/link?url="]');
if (!links) return;

[].forEach.call(links, function(link){
// console.log('decode url: ', link.href)
decode(link.href, link);
});
}

function nextPageLoaded() {
// AutoPagerizeの最後の区切り以降のRangeを取得
var sep = document.querySelectorAll('.autopagerize_page_separator, .autopagerize_page_info' + ', .sp-separator'
+ ', p[id="page"]');
sep = sep[sep.length-1];
if (!sep) return;
var range = document.createRange();
if (sep.parentNode.localName == 'td') {
range.setStartAfter(sep.parentNode.parentNode);
range.setEndAfter(sep.parentNode.parentNode.parentNode);
} else {
range.setStartAfter(sep);
range.setEndAfter(sep.parentNode.lastChild);
}

checkDocument(range.commonAncestorContainer);
}

function addNextPageObserver() {
// 创建观察者对象
var observer = new MutationObserver(function(mutations){
var needAdd = false;
for (var i = mutations.length - 1; i >= 0; i--) {
if (mutations[i].addedNodes.length) {
needAdd = true;
break;
}
}

if (needAdd) {
checkDocument();
}
});
observer.observe(document.body, {childList: true, subtree: true});
}

function addMutationObserver(selector, callback) {
var watch = document.querySelector(selector);
if (!watch) return;
Expand All @@ -117,6 +78,7 @@ function addMutationObserver(selector, callback) {
observer.observe(watch, {childList: true, subtree: true });
}


checkDocument();

// 添加下一页和不刷新页面的支持
Expand All @@ -127,6 +89,12 @@ addMutationObserver('#wrapper_wrapper', function(){



// 下一页的支持有2种方式(已不准确)
// 0 对 Super_preloaderPlus_one、AutoPagerize、uAutoPagerize、 BaiduMonkeyW 脚本的支,准确、资源消耗相对更小
// 1 对所有脚本都适用,但不准确、消耗相对较大。如果非上面的几个脚本,建议用这个。

// var checkNextPageMethod = 0;

// // 添加下一页的支持
// if (!checkNextPageMethod) {
// document.addEventListener("GM_AutoPagerizeNextPageLoaded", nextPageLoaded, false);
Expand Down Expand Up @@ -178,3 +146,40 @@ addMutationObserver('#wrapper_wrapper', function(){
// }

// run()


// function nextPageLoaded() {
// // AutoPagerizeの最後の区切り以降のRangeを取得
// var sep = document.querySelectorAll('.autopagerize_page_separator, .autopagerize_page_info' + ', .sp-separator'
// + ', p[id="page"]');
// sep = sep[sep.length-1];
// if (!sep) return;
// var range = document.createRange();
// if (sep.parentNode.localName == 'td') {
// range.setStartAfter(sep.parentNode.parentNode);
// range.setEndAfter(sep.parentNode.parentNode.parentNode);
// } else {
// range.setStartAfter(sep);
// range.setEndAfter(sep.parentNode.lastChild);
// }

// checkDocument(range.commonAncestorContainer);
// }

// function addNextPageObserver() {
// // 创建观察者对象
// var observer = new MutationObserver(function(mutations){
// var needAdd = false;
// for (var i = mutations.length - 1; i >= 0; i--) {
// if (mutations[i].addedNodes.length) {
// needAdd = true;
// break;
// }
// }

// if (needAdd) {
// checkDocument();
// }
// });
// observer.observe(document.body, {childList: true, subtree: true});
// }
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ GM 脚本
- [verycdShowLink](verycdShowLink):verycd页面无需登入也能显示 ed2k 链接。
- [威锋电子书批量下载](威锋电子书批量下载):批量导出 [iPad 电子书资源分享区 - 威锋论坛][] 附件的下载地址。
- [.修改版](.修改版)
- [Blacklist_Blocker_Rule.user.js](.修改版/Blacklist_Blocker_Rule.user.js)
- [Blacklist_Blocker_Rule.user.js](.修改版/Blacklist_Blocker_Rule.user.js),原作者写的只支持 Firefox。
- [Google Images direct link.user.js](.修改版/Google Images direct link.user.js)
- [Manga_OnlineViewer_CE.user.js](.修改版/Manga_OnlineViewer_CE.user.js)
- [PanLinkCheck.user.js](.修改版/PanLinkCheck.user.js)
Expand Down

0 comments on commit 7c24a03

Please sign in to comment.