Created
October 26, 2012 22:08
-
-
Save sivagao/3961850 to your computer and use it in GitHub Desktop.
javascript , douban & lib info mashup , which use the chrome plugin's permissions to solve the cross origin(跨域问题)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function check() { | |
var a = location.href; | |
a = a.search("book.douban.com/subject"); | |
if(a == -1) { | |
checkJun() | |
} else { | |
checkDouban() | |
} | |
} | |
function checkDouban() { | |
var b = document.getElementById("wrapper"); | |
var b = b.childNodes; | |
var e; | |
for(var c = 0; c < b.length; c++) { | |
if(String(b[c].tagName).toLowerCase() == "h1") { | |
b = b[c]; | |
break | |
} | |
} | |
b = b.getElementsByTagName("span")[0]; | |
var d = b.childNodes[0].nodeValue; | |
var a = "http://202.116.13.244/search*chx/?searchtype=X&searcharg=+" + d + "&x=0&y=0"; | |
xmlHttp = new XMLHttpRequest(); | |
xmlHttp.onreadystatechange = function() { | |
if(xmlHttp.readyState == 4) { | |
if(xmlHttp.status == 200) { | |
handleString(xmlHttp.responseText, d) | |
} else { | |
rapWrongToDouBan() | |
} | |
} | |
}; | |
xmlHttp.open("get", a, true); | |
xmlHttp.send(null) | |
} | |
function handleString(g, e) { | |
var b = g.search("\u8bf7\u586b\u8868\u3001\u9009\u62e9\u9650\u5236\u8303\u56f4\u3001\u7136\u540e\u8f7b\u70b9\u63d0\u4ea4\u3002"); | |
if(b == -1) { | |
var d = g; | |
var f = g.search("<!--{nohitmsg}-->"); | |
g = g.slice(f, g.length); | |
var a = g.search("</span>"); | |
g = g.slice(0, a); | |
f = g.search("<a"); | |
a = g.search("</a>"); | |
g = g.slice(f, a); | |
f = g.lastIndexOf(">"); | |
g = g.slice(f + 1, g.length); | |
if(g != e) { | |
g = d; | |
if(g.search('id="items_for_sms"') != -1) { | |
f = g.search('id="items_for_sms"'); | |
f = g.lastIndexOf("<div", f); | |
g = g.slice(f, g.length); | |
f = g.search("<table"); | |
a = g.search("</table>"); | |
g = g.slice(f, a); | |
g += "</table>"; | |
rapRigToDouban(g); | |
return | |
} | |
rapWrongToDouBan(); | |
return | |
} | |
g = d; | |
f = g.search("<!-- This File Last Changed: 01 July 2008 -->"); | |
g = g.slice(f, g.length); | |
f = g.search("<table"); | |
a = g.search("</table>"); | |
g = g.slice(f, a); | |
g += "</table>"; | |
rapRigToDouban(g); | |
var c = document.getElementById("icrt_block").getElementsByTagName("img")[0]; | |
d = c.src; | |
d = String(d).slice(String("http://book.douban.com").length); | |
c.src = "http://202.116.13.244" + d | |
} else { | |
rapWrongToDouBan() | |
} | |
} | |
function rapRigToDouban(e) { | |
var d = document.createElement("div"); | |
d.innerHTML = e; | |
d.innerHTML = "<div id='icrt_block'><p class='icrt_block_title'>\u66a8\u5927\u56fe\u4e66\u9986\u54ea\u91cc\u6709\u8fd9\u672c\u4e66\uff1f</p>" + e + "</div>"; | |
var g = document.getElementById("interest_sect_level"); | |
g.innerHTML = d.innerHTML + g.innerHTML; | |
document.getElementById("icrt_block").className = "icrt_style"; | |
var c = document.getElementById("icrt_block").getElementsByTagName("a"); | |
for(var a = 0; a < c.length; a++) { | |
if(c[a].href.search("http://book.douban.com") != -1) { | |
var b = c[a].href; | |
b = String(b).slice(String("http://book.douban.com").length); | |
c[a].href = "http://202.116.13.244" + b | |
} | |
} | |
var f = document.getElementById("icrt_block").getElementsByTagName("img"); | |
for(var a = 0; a < f.length; a++) { | |
f[a].style.display = "none" | |
} | |
c = document.getElementById("icrt_block").getElementsByTagName("a"); | |
for(var a = 0; a < c.length; a++) { | |
c[a].setAttribute("target", "_blank") | |
} | |
} | |
function rapWrongToDouBan() { | |
var c = document.getElementById("interest_sect_level"); | |
c.innerHTML = "<div id='icrt_block' class='icrt_style'><p class='icrt_block_title'>\u66a8\u5927\u56fe\u4e66\u9986\u6ca1\u6709\u8fd9\u672c\u4e66\uff01</p><a class='icrt_go' href='http://lib.jnu.edu.cn/users/goBookOpac.action'>\u628a\u8fd9\u672c\u4e66\u8350\u8d2d\u7ed9\u66a8\u5927\u56fe\u4e66\u9986</a></div>" + c.innerHTML; | |
var b = document.getElementById("icrt_jnu_block").getElementsByTagName("a"); | |
for(var a = 0; a < b.length; a++) { | |
b[a].setAttribute("target", "_blank") | |
} | |
} | |
function checkJun() { | |
var f = document.body.innerHTML; | |
var e = f.search("<!-- next row for fieldtag=t -->"); | |
f = f.slice(e, f.length); | |
e = 0; | |
var a = f.search("</tr>"); | |
f = f.slice(e, a); | |
e = f.search("</td>"); | |
f = f.slice(e + String("</td>").length, f.length); | |
e = f.search("<strong>"); | |
a = f.lastIndexOf("</strong>"); | |
f = f.slice(e, a) + "</strong>"; | |
var c = document.createElement("div"); | |
c.innerHTML = "<div style='display:none;'>" + f + "</div>"; | |
f = c.innerText; | |
var d = f; | |
d = d.slice(d.lastIndexOf(">") + 1, d.length); | |
var b = "http://book.douban.com/subject_search?search_text=" + d + "&cat=1003"; | |
xml = new XMLHttpRequest(); | |
xml.onreadystatechange = function() { | |
if(xml.readyState == 4) { | |
if(xml.status == 200) { | |
jnuhandleString(xml.responseText, d) | |
} else { | |
alert("god\u8bf7\u6c42\u5931\u8d25") | |
} | |
} | |
}; | |
xml.open("get", b, true); | |
xml.send(null) | |
} | |
function jnuhandleString(j, k) { | |
var c = document.createElement("div"); | |
c.innerHTML = "<div>" + j + "</div>"; | |
var l = j.search("<body"); | |
var f = j.search("</body>"); | |
j = j.slice(l, f); | |
l = j.search(">"); | |
j = j.slice(l + 1, j.length); | |
c.innerHTML = "<div style='display:none;'>" + j + "</div>"; | |
document.body.appendChild(c); | |
var e = document.getElementById("content").getElementsByClassName("article")[0].getElementsByTagName("table"); | |
for(var g = 0; g < e.length; g++) { | |
var b = e[g].getElementsByTagName("td")[1].getElementsByTagName("a")[0]; | |
var h = b.innerText; | |
if(h == k) { | |
console.log("aimTitle=", h); | |
console.log("bookName=", k); | |
e = e[g]; | |
break | |
} | |
} | |
var d = document.getElementById("ml"); | |
if(e.innerHTML == undefined) { | |
e.innerHTML = "<div id='icrt_jnu_block'>\u6ca1\u6709\u5728\u8c46\u74e3\u4e0a\u627e\u5230\u4e0e\u672c\u4e66\u540d\u5b8c\u5168\u5339\u914d\u7684\u4e66!</div>" | |
} | |
console.log(e.innerHTML); | |
d.innerHTML = "<div id='icrt_jnu_block' class='icrt_jnu_block' style='padding-top:10px;padding-bottom:10px;margin:15px 0px;border-top:1px dotted gray;border-bottom: 1px dotted gray;'><p>\u8fd9\u672c\u4e66\u5728\u8c46\u74e3\u4e0a\u60c5\u51b5:</p><table>" + e.innerHTML + "</table></div>" + d.innerHTML; | |
var a = document.getElementById("icrt_jnu_block").getElementsByTagName("a"); | |
for(var g = 0; g < a.length; g++) { | |
a[g].setAttribute("target", "_blank") | |
} | |
} | |
check(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment