📄 toolbar.js
字号:
}
function errorOpen(){
doc.getElementsByTagName("div")[0].innerHTML = uti.sb().getString("LoadError");
}
// request for search result
try {
uti.makeRequest("POST", musicUrl, openMusicNK, errorOpen, content, null);
}catch(e){
bus(e);
}
break;
};
case "movie" : {
if (branch == "name") {
movieUrl += "?skind=filmname&skey=" + query;
} else {
movieUrl += "?skind=actor&skey=" + query;
}
uti.openURL(movieUrl);
break;
};
case "soft" : {
uti.openURL(softUrl + "?keyword=" + query);
break;
};
case "12club" : {
clubUrl += "?q=" + query + "&m=";
switch (branch) {
case "movie" : clubUrl += "1"; break;
case "game" : clubUrl += "2"; break;
case "cartoon" : clubUrl += "3"; break;
case "soft" : clubUrl += "4"; break;
case "ebook" : clubUrl += "5"; break;
};
uti.openURL(clubUrl);
break;
};
case "google" : {
googleUrl += "&q=" + query + "+site%3Anankai.edu.cn";
uti.openURL(googleUrl);
break;
}
default : return null;
}
}
NKToolbar.prototype.loadTopTen = function() {
var url = "http://nkbbs.org/hottopic10.htm";
var loading = document.getElementById("bbs_top_loading");
loading.setAttribute("label", uti.sb().getString("Loading"));
loading.setAttribute("hidden", "false");
var popup = document.getElementById("bbs_top_popup");
var sep = document.getElementById("bbs_top_sep");
function removeAllChild() {
// remove all child nodes first
var popupChild = popup.childNodes;
for (var i = popupChild.length - 1;i >= 0; i--) {
var filter = popupChild[i].getAttribute("id");
if (filter != "bbs_top_loading" && filter != "bbs_top_sep"
&& filter != "bbs_top_open")
popup.removeChild(popupChild[i])
}
}
var hiddenBrowser = uti.getHiddenBrowser();
var doc = hiddenBrowser.contentDocument;
removeAllChild();
// fill bbs menuitems
function fillBBS(odoc) {
loading.setAttribute("hidden", "true");
// bug fixed
if (popup.childNodes.length > 3) removeAllChild();
var items = odoc.evaluate("//div[@id='bbs']/table/tbody/tr/td/table/tbody/tr", odoc, null, XPathResult.ANY_TYPE, null);
var i = 1;
var item = items.iterateNext();
while (item) {
// fill lists
if ((i >= 3) && (i % 2 == 1)){
var titleNode = item.childNodes[0].childNodes[0];
var boardNode = item.childNodes[1].childNodes[0];
var mi = document.createElement("menuitem");
mi.setAttribute("label", boardNode.textContent + " " + titleNode.textContent);
mi.setAttribute("oncommand", "uti.openURL('http://nkbbs.org" + titleNode.getAttribute("href") + "')");
popup.insertBefore(mi, sep);
}
i++;
item = items.iterateNext();
}
}
// request received
function reqBBS(req) {
doc.write("<div id='bbs'>" + req.responseText + "</div>");
doc.close();
fillBBS(doc);
};
// if error
function loadBBSError() {
loading.setAttribute("label", uti.sb().getString("LoadError"));
}
if (doc.getElementById("bbs") != null) {
// load bbs top ten from cache
fillBBS(doc);
} else {
uti.makeRequest("GET", url, reqBBS, loadBBSError, null, null);
}
// clear bbs cache every 5 minutes
bbsTimer = window.setInterval(function(){doc.removeChild(doc.getElementById("bbs"));}, 5*1000*60);
}
NKToolbar.prototype.loadLatelyNews = function() {
var url = "http://news.nankai.edu.cn/";
var loading = document.getElementById("news_lately_loading");
loading.setAttribute("label", uti.sb().getString("Loading"));
loading.setAttribute("hidden", "false");
var popup = document.getElementById("news_lately_popup");
var sep = document.getElementById("news_lately_sep");
// remove all child nodes first
function removeAllNews() {
var popupChild = popup.childNodes;
for (var i = popupChild.length - 1;i >= 0; i--) {
var filter = popupChild[i].getAttribute("id");
if (filter != "news_lately_loading" && filter != "news_lately_sep"
&& filter != "news_lately_open")
popup.removeChild(popupChild[i])
}
}
var hiddenBrowser = uti.getHiddenBrowser();
var doc = hiddenBrowser.contentDocument;
removeAllNews();
// request received, fill menuitem
function fillNews(odoc) {
loading.setAttribute("hidden", "true");
// bug fixed
if (popup.childNodes.length > 3) removeAllNews();
var items = odoc.evaluate("//div[@id='news']/table/tbody/tr/td[2]/a", odoc, null, XPathResult.ANY_TYPE, null);
var item = items.iterateNext();
while (item) {
var title = item.textContent;
var href = item.getAttribute("href");
var mi = document.createElement("menuitem");
mi.setAttribute("label", title);
mi.setAttribute("oncommand", "uti.openURL('" + href + "')");
popup.insertBefore(mi, sep);
item = items.iterateNext();
}
};
function reqNews(req){
var res = req.responseText.replace(/\n/g, "").replace(/\r/g, "");
var content = res.split("yaowen")[1];
content = "<div id='news'><!--" + content + "--></div>";
doc.write(content);
doc.close();
fillNews(doc);
}
// if error
function loadNewsError() {
loading.setAttribute("label", uti.sb().getString("LoadError"));
}
if (doc.getElementById("news") != null) {
// load lately news from cache
fillNews(doc);
} else {
uti.makeRequest("GET", url, reqNews, loadNewsError, null, null);
}
// clear news cache every 30 minutes
newsTimer = window.setInterval(function(){doc.removeChild(doc.getElementById("news"));}, 30*1000*60);
}
NKToolbar.prototype.loadNewMovie = function() {
var url = "http://movie.nankai.edu.cn/movie/index.php";
var loading = document.getElementById("movie_new_loading");
loading.setAttribute("label", uti.sb().getString("Loading"));
loading.setAttribute("hidden", "false");
var popup = document.getElementById("movie_new_popup");
var sep = document.getElementById("movie_new_sep");
function removeAllMovie() {
// remove all child nodes first
var popupChild = popup.childNodes;
for (var i = popupChild.length - 1;i >= 0; i--) {
var filter = popupChild[i].getAttribute("id");
if (filter != "movie_new_loading" && filter != "movie_new_sep"
&& filter != "movie_new_open")
popup.removeChild(popupChild[i])
}
}
var hiddenBrowser = uti.getHiddenBrowser();
var doc = hiddenBrowser.contentDocument;
removeAllMovie();
// request received, fill menuitem
function fillMovie(odoc) {
loading.setAttribute("hidden", "true");
// bug fixed
if (popup.childNodes.length > 3) removeAllMovie();
var items = odoc.evaluate("//div[@id='movie']/table[4]/tbody/tr/td[2]/table[4]/tbody/tr[2]/td/table/tbody/tr", odoc, null, XPathResult.ANY_TYPE, null);
var item = items.iterateNext();
while (item) {
// fill lists
var titleNode = item.childNodes[3].childNodes[0];
var timeNode = item.childNodes[5].childNodes[0];
var mi = document.createElement("menuitem");
mi.setAttribute("label", titleNode.textContent + " " + timeNode.textContent);
mi.setAttribute("oncommand", "uti.openURL('http://movie.nankai.edu.cn/movie/" + titleNode.getAttribute("href") + "')");
popup.insertBefore(mi, sep);
item = items.iterateNext();
}
};
// request for movie information
function reqMovie(req) {
doc.write("<div id='movie'>" + req.responseText + "</div>");
doc.close();
fillMovie(doc);
}
// if error
function loadMovieError() {
loading.setAttribute("label", uti.sb().getString("LoadError"));
}
if (doc.getElementById("movie") != null) {
// load movie ten from cache
fillMovie(doc);
} else {
uti.makeRequest("GET", url, reqMovie, loadMovieError, null, null);
}
// clear movie cache every 30 minutes
movieTimer = window.setInterval(function(){doc.removeChild(doc.getElementById("movie"));}, 30*1000*60);
}
NKToolbar.prototype.login = function(_type) {
var user = prefs.getStringPref("login." + _type + ".default-user");
var pwd = prefs.getStringPref("login." + _type + ".default-pwd");
var rem = prefs.getBoolPref("login." + _type + ".remember");
if (!rem || user == null || pwd == null) {
var params = {inn : {i_user : user, i_pwd : pwd, i_type : _type}, out : null};
window.openDialog("chrome://nktoolbar/content/login.xul", "",
"centerscreen,dependent,modal",
params).focus();
var user = params.out.o_user;
var pwd = params.out.o_pwd;
}
switch (_type) {
case "bbs" : {
var loginBBSUrl = "http://nkbbs.org/cgi-bin/bbs/bbslogin";
var contents = [["id", user], ["pw", pwd]];
var content = "";
for (var i in contents) {
content += contents[i][0] + "=" + (contents[i][1]) + "&";
}
var gBrowser = uti.getCurrWindow().getBrowser();
gBrowser.selectedTab = gBrowser.addTab("");
var browser = gBrowser.selectedBrowser;
// Thanks to bobo's help!
var dataStream = Cc["@mozilla.org/io/string-input-stream;1"].
createInstance(Ci.nsIStringInputStream);
dataStream.setData(content, content.length);
var mimeStream = Cc["@mozilla.org/network/mime-input-stream;1"].
createInstance(Ci.nsIMIMEInputStream);
mimeStream.addHeader("Content-Type", "application/x-www-form-urlencoded");
mimeStream.addContentLength = true;
mimeStream.setData(dataStream);
var sis = mimeStream.QueryInterface(Ci.nsIInputStream);
var atom = Components.classes['@mozilla.org/atom-service;1']
.getService(Components.interfaces.nsIAtomService);
browser.documentCharsetInfo.forcedCharset = atom.getAtom("GB2312");
browser.loadURIWithFlags(loginBBSUrl, Ci.nsIWebNavigation.LOAD_FLAGS_NONE, null, null, sis);
break;
};
case "mail" : {
var token = Math.random() * 100000000;
var url = "http://mail.nankai.edu.cn/cgi-bin/login?token=" + token.toString();
var contents = [["LoginName", user], ["domain", "mail.nankai.edu.cn"], ["Password", pwd], ["Submit", "%B5%C7%C2%BC"]];
var content = "";
for (var i in contents) {
content += contents[i][0] + "=" + (contents[i][1]) + "&";
}
var gBrowser = uti.getCurrWindow().getBrowser();
gBrowser.selectedTab = gBrowser.addTab("");
var browser = gBrowser.selectedBrowser;
// Thanks to bobo's help!
var dataStream = Cc["@mozilla.org/io/string-input-stream;1"].
createInstance(Ci.nsIStringInputStream);
dataStream.setData(content, content.length);
var mimeStream = Cc["@mozilla.org/network/mime-input-stream;1"].
createInstance(Ci.nsIMIMEInputStream);
mimeStream.addHeader("Content-Type", "application/x-www-form-urlencoded");
mimeStream.addContentLength = true;
mimeStream.setData(dataStream);
var sis = mimeStream.QueryInterface(Ci.nsIInputStream);
var atom = Components.classes['@mozilla.org/atom-service;1']
.getService(Components.interfaces.nsIAtomService);
browser.documentCharsetInfo.forcedCharset = atom.getAtom("GB2312");
browser.loadURIWithFlags(url, Ci.nsIWebNavigation.LOAD_FLAGS_NONE, null, null, sis);
break;
};
case "gate" : {
var loginGateUrl = "https://202.113.16.223/php/user_login.php";
var contents = [["logintype", "%C1%AC%CF%DF%B9%FA%BC%CA"], ["loginuser", user], ["domainid", "1"], ["password", pwd]];
var content = "";
for (var i in contents) {
content += contents[i][0] + "=" + (contents[i][1]) + "&";
}
var gBrowser = uti.getCurrWindow().getBrowser();
gBrowser.selectedTab = gBrowser.addTab("");
var browser = gBrowser.selectedBrowser;
// Thanks to bobo's help!
var dataStream = Cc["@mozilla.org/io/string-input-stream;1"].
createInstance(Ci.nsIStringInputStream);
dataStream.setData(content, content.length);
var mimeStream = Cc["@mozilla.org/network/mime-input-stream;1"].
createInstance(Ci.nsIMIMEInputStream);
mimeStream.addHeader("Content-Type", "application/x-www-form-urlencoded");
mimeStream.addContentLength = true;
mimeStream.setData(dataStream);
var sis = mimeStream.QueryInterface(Ci.nsIInputStream);
var atom = Components.classes['@mozilla.org/atom-service;1']
.getService(Components.interfaces.nsIAtomService);
browser.documentCharsetInfo.forcedCharset = atom.getAtom("GB2312");
browser.loadURIWithFlags(loginGateUrl, Ci.nsIWebNavigation.LOAD_FLAGS_NONE, null, null, sis);
break;
};
default : break;
}
}
NKToolbar.prototype.checkOnline = function() {
var url = "https://202.113.16.223/php/onlinestatus.php";
function check(req) {
var html = req.responseText.replace("\n", "").replace("\r", "");//alert(html);
if (/(.*?)logout_net\.php(.*?)/gm.test(html)) {
//alert("hao");
document.getElementById("gate_logout").setAttribute("disabled", "false");
}
}
uti.makeRequest("GET", url, check, null, null, null);
}
NKToolbar.prototype.logout = function(type) {
if (type == "gate") {
uti.logoutGate();
}
}
uti.logoutGate = function() {
function logoutOver() {
uti.openURL("http://202.113.16.223/php/onlinestatus.php");
}
uti.makeRequest("POST", "https://202.113.16.223/php/logout_net.php", logoutOver);
}
NKToolbar.prototype.openSettings = function() {
openDialog("chrome://nktoolbar/content/preference.xul", "",
"centerscreen,dependent,modal", null);
}
/*
function test() {
var url = "http://nkbbs.org";
uti.makeRequest("GET", url, rec, null, null, null);
}
nktoolbar.prototype.test = function(param) {
var url = "http://nkbbs.org";
uti.makeRequest("GET", url, al, null, null, null);
function al(res) {
alert(res.responseText);
alert(param)
}
}
function rec(res) {
alert(res.responseText);
}
function testlogin() {
var req = new XMLHttpRequest();
function received(){
var res = req.responseText;
alert(res);
if (/(.*?)javascript>(.*?)<\/script>(.*?)/.test(res.replace("\n", ""))) {
var js = RegExp.$1;
alert(js);
eval(js);
} else {
alert("failed");
}
}
var content = "logintype=%C1%AC%CF%DF%B9%FA%BC%CA&loginuser=2120050325&domainid=1&password=507&refer=1&x=44&y=11";
var url = "https://202.113.16.223/php/user_login.php";
req.open("POST", url, false);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.setRequestHeader("Cookie", "PHPSESSID=d515a7f5442b0596d5da83b71b175b19");
req.overrideMimeType("text/xml;charset=gb2312");
req.onload = received;
req.send(content);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -