// ==UserScript==
// @name Douban Columns Search View
// @namespace http://qixinglu.com
// @description 让豆瓣搜索页面并排显示图书、电影、音乐的搜索结果
// @include http://www.douban.com/search?search_text=*
// @version 0.0.1.20140517140356
// @downloadURL https://update.greasyfork.icu/scripts/1113/Douban%20Columns%20Search%20View.user.js
// @updateURL https://update.greasyfork.icu/scripts/1113/Douban%20Columns%20Search%20View.meta.js
// ==/UserScript==
var search_links = document.querySelectorAll('div.result-top p a');
var book_search_url = search_links[0].href;
var movie_search_url = search_links[1].href;
var music_search_url = search_links[2].href;
var content_node = document.getElementById('content');
var result_container_node = document.createElement('div');
result_container_node.id = 'result_container';
result_container_node.innerHTML = '' +
'
' +
'' +
'';
GM_addStyle('' +
'.extra_result { ' +
'float: left; ' +
'margin-right: 10px; ' +
'}' +
'#result_container { ' +
'float: left; ' +
'}' +
'#book_result {' +
'width: 360px; ' +
'}' +
'#movie_result {' +
'width: 450px; ' +
'}' +
'#music_result {' +
'width: 300px; ' +
'}' +
'#wrapper { ' +
'width: 1140px; ' +
'}' +
'#db-nav-main .bd {' +
'width: 964px;' +
'}');
content_node.replaceChild(result_container_node, content_node.lastElementChild);
var get_result_node = function(response) {
var temp_document = document.createElement('html');
temp_document.innerHTML = response.responseText;
return temp_document.getElementsByClassName('article')[0];
}
GM_xmlhttpRequest({
method: "GET",
url: book_search_url,
onload: function(response) {
var result_node = get_result_node(response);
result_node.removeChild(result_node.firstElementChild);
result_node.removeChild(result_node.firstElementChild);
var result_container_node = document.getElementById('book_result');
result_container_node.appendChild(result_node);
document.querySelector('#book_result a').href = book_search_url;
var link_nodes = result_node.querySelectorAll('.paginator a')
var i, link_node;
for (i = 0; i < link_nodes.length; i += 1) {
link_node = link_nodes[i];
link_node.href = link_node.href.replace('http://www', 'http://book');
}
}
});
GM_xmlhttpRequest({
method: "GET",
url: movie_search_url,
onload: function(response) {
var result_node = get_result_node(response);
var result_container_node = document.getElementById('movie_result');
result_container_node.appendChild(result_node);
document.querySelector('#movie_result a').href = movie_search_url;
}
});
GM_xmlhttpRequest({
method: "GET",
url: music_search_url,
onload: function(response) {
var result_node = get_result_node(response);
var result_container_node = document.getElementById('music_result');
result_container_node.appendChild(result_node);
document.querySelector('#music_result a').href = music_search_url;
}
});