ホームページ >ウェブフロントエンド >jsチュートリアル >複数の検索エンジンと統合された JavaScript ページ実装コード_JavaScript スキル

複数の検索エンジンと統合された JavaScript ページ実装コード_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:37:271382ブラウズ

- キーワードを入力し、その後ろにある検索エンジンのリンクをクリックして、そのエンジンのページに移動します
- キーワードを入力して Enter キーを押すと、新しい検索エンジンを選択するたびにデフォルトの検索エンジンが使用されます。デフォルトの検索エンジンが使用されます。エンジンもそれに応じて変更されます。
- 最後に使用した検索エンジンを自動的に記憶し、*
複数の検索エンジンと統合された JavaScript ページ実装コード_JavaScript スキル
を追加します。 ソース コードは次のとおりです。さまざまな IE/FF を使用しています。適応方法:

コードをコピー コードは次のとおりです:





マイポータル
<スクリプト言語="javascript">
// この段では FireFox も IE でサポートされる innerText メソッドを使用します
function isIE(){
if (window.navigator.userAgent.toLowerCase().indexOf("msie")>=1)
true を返します。
else
return false;
}
if(!isIE()){ //firefox innerText 定義
HTMLElement.prototype.__defineGetter__( "innerText",
function(){
var anyString = "";
var childS = this.childNodes;
for(var i=0; i if(childS[i].nodeType==1)
anyString = childS [i].tagName=="BR" ? 'n' : childS[i].innerText;
else if(childS[i].nodeType==3)
anyString = childS[i].nodeValue;
}
任意の文字列を返します
}
);
HTMLElement.prototype.__defineSetter__( "innerText",
function(sText){
this.textContent=sText;
}
);
}
// この段では FireFox の HTMLElement に click メソッドが備わっています(Mozilla の HTMLElement に click メソッドを追加します)
try {
// HTMLElement にアクセスできるように、span 要素を作成します
document. createElement('スパン');
HTMLElement.prototype.click = function () {
if (typeof this.onclick == 'function')
this.onclick({type: 'click'});
};
}
catch (e) {
//alert('HTMLElement のクリック メソッドを追加できませんでした');
}
// HTMLAnchorElement の追加onclick イベント
try {
// HTMLAnchorElement にアクセスできるように要素を作成します
document.createElement('a');
HTMLElement.prototype.click = function () {
if (typeof this.onclick == 'function') {
if (this.onclick({type: 'click'}) && this.href )
window.open(this.href, this.target? this.target : '_self');
}
else if (this.href)
window.open(this.href, this.target? this.target : '_self');
};
}
catch (e) {
//alert('HTMLAnchorElement のクリック メソッドを追加できませんでした');
}
// 跟键イベントを追跡
function CaptureKeys (evt) {
var keyCode = evt.keyCode ? evt.keyCode :
evt.charCode ? evt.charCode : evt.that;
if (keyCode == 13) {
// キーをキャンセルします:
if (evt.preventDefault) {
evt.preventDefault();
}
var dq = getCookie('default-engine');
if( dq == null) dq = "baidu_txt";
submit_query( dq );
false を返します。
}
true を返します。
}
// クッキー機能関数数
function getCookie(cookieName)
{
var cookieString = document.cookie;
var start =cookieString.indexOf(cookieName '=');
if(start == -1)
return null;
開始 = cookieName.length 1;
var end = cookieString.indexOf(';', start);
if(end == -1)
return unescape(cookieString.substring(start));
return unescape(cookieString.substring(start,end));
}
関数 setCookie(cookieName, cookieValue)
{
var 期限切れ = new Date();
expires.setTime(expires.getTime() 3*30*24*60*60*1000); // 3 か月
document.cookie = cookieName '='エスケープ(cookieValue) ';expires='expires.toGMTString();
}
functionremoveCookie(cookieName)
{
varexpires = new Date();
expires.setTime(expires.getTime() - 1);
document.cookie = cookieName '=fooxxx;expires='expires.toGMTString();
}
function $(id) {
return document.getElementById(id);
}
// 调式オブジェクト用、IE 用、Firefox で使用できる firebug
function dumpObject(obj)
{
var temp="";
for (x in obj)
temp = x ": " obj[x] "n";
var ポップアップ = window.createPopup();
popup.document.body.innerHTML = '';
popup.show(100, 100, 300, 400, document.body);
}
// 多种查询引擎请求分派
function submit_query(t_query)
{
var キーワード = document.getElementById("keyword");
var mylink = document.getElementById("mylink");
var loc = "";
switch(t_query)
{
case "baidu_txt":
loc = "http://www.baidu.com/s?wd=" キーワード.値;
休憩;
case "baidu_img":
loc = "http://image.baidu.com/i?ct=201326592&lm=-1&tn=baiduimagenojs&pv=&word="keyword.value "&z=0&pn=0&rn=16&cl= 2";
休憩;
case "yodao_txt":
loc = "http://www.yodao.com/search?q=" encodeURI(keyword.value) "&ue=utf8&keyfrom=web.index";
休憩;
case "yodao_img":
loc = "http://image.yodao.com/search?q=" encodeURI(keyword.value) "&ue=utf8&keyfrom=image.index";
休憩;
case "yodao_dict":
loc = "http://dict.yodao.com/search?q=" encodeURI(keyword.value) "&ue=utf8&keyfrom=dict.index";
休憩;
case "yodao_blog":
loc = "http://blog.yodao.com/search?q=" encodeURI(keyword.value) "&ue=utf8&keyfrom=blog.top";
休憩;
case "iask_ditu":
loc = "http://ditu.iask.com/a/r.php?cl=北京&key="keyword.value;
休憩;
case "verycd":
loc = "http://www.verycd.com/search/folders/" encodeURI(keyword.value);
休憩;
case "google_txt":
loc = encodeURI("http://www.google.com/search?hl=ja&q="keyword.value "&btnG=Google Search");
休憩;
case "yahoo_txt":
loc = "http://search.yahoo.com/search?p=" encodeURI(keyword.value) "&vc=&fr=yfp-t-501&toggle=1&cop=mss&ei= UTF-8&fp_ip=CN";
休憩;
case "trans_en":
loc = "http://209.85.171.104/translate_c?hl=ja&sl=en&tl=zh-CN&u=http://"keyword.value "/&usg=ALkJrhijPevZUxPtrHDj94k1U9Wo8x7S8g";
休憩;
case "google_code":
loc = "http://www.google.com/codesearch?q="keyword.value "&hl=ja&btnG=検索コード";
休憩;
case "google_scholar":
loc = "http://scholar.google.com/scholar?q="keyword.value "&hl=ja&lr=&btnG=Search";
休憩;
}
setEngine(t_query);
setCookie('default-engine', t_query);
mylink.href= loc;
mylink.click();
}
function getDefaultEngine()
{
var dq = getCookie('default-engine');
if( dq == null) dq = "baidu_txt";
dq を返します;
}
関数 setDefaultEngine()
{
var old_e = getDefaultEngine();
if( $(old_e).innerText.indexOf('*') < 0)
$(old_e).innerText = $(old_e).innerText '*';
}
function setEngine( new_e )
{
var old_e = getDefaultEngine();
if( $(old_e).innerText.indexOf('*') >= 0)
$(old_e).innerText = $(old_e).innerText.replace('*','');
if( $(new_e).innerText.indexOf('*') < 0)
$(new_e).innerText = $(new_e).innerText '*';
setCookie('default-engine', new_e);
}



<表の境界線="0" 幅="100%">

検索:

百度 
Google 
有道 
博客 
代金 
论文 
百图 
有图 
词典 
地图 
CD 
Yahoo 
翻译 




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。