封裝的JS代碼
1 // 網頁簡繁體轉換 2 // 本js用於客戶在網站頁面選擇繁體中文或簡體中文顯示,默認是正常顯示,即簡繁體同時顯示 3 // 在用戶第一次訪問網頁時,會自動檢測客戶端語言進行操作並提示.此功能可關閉 4 // 本程序只在UTF8編碼下測試過,不保證其他編碼有效 5 // -------------- 以下參數大部分可以更改 -------------------- 6 //s = simplified 簡體中文 t = traditional 繁體中文 n = normal 正常顯示 7 var zh_default = 'n'; //默認語言,請不要改變 8 var zh_choose = 'n'; //當前選擇 9 var zh_expires = 7; //cookie過期天數 10 var zh_class = 'zh_click'; //鏈接的class名,id為class + s/t/n 之一 11 var zh_style_active = 'font-weight:bold; color:green;'; //當前選擇的鏈接式樣 12 var zh_style_inactive = 'color:blue;'; //非當前選擇的鏈接式樣 13 var zh_browserLang = ''; //瀏覽器語言 14 var zh_autoLang_t = true; //瀏覽器語言為繁體時自動進行操作 15 var zh_autoLang_s = false; //瀏覽器語言為簡體時自動進行操作 16 var zh_autoLang_alert = true; //自動操作后是否顯示提示消息 17 //自動操作后的提示消息 18 var zh_autoLang_msg = '歡迎來到本站,本站爲方便台灣香港的用戶\n1.采用UTF-8國際編碼,用任何語言發帖都不用轉碼.\n2.自動判斷繁體用戶,顯示繁體網頁\n3.在網頁最上方有語言選擇,如果瀏覽有問題時可以切換\n4.本消息在cookie有效期內只顯示一次'; 19 var zh_autoLang_checked = 0; //次檢測瀏覽器次數,第一次寫cookie為1,提示后為2,今后將不再提示 20 //判斷瀏覽器語言的正則,ie為小寫,ff為大寫 21 var zh_langReg_t = /^zh-tw|zh-hk$/i; 22 var zh_langReg_s = /^zh-cn$/i; 23 //簡體繁體對照字表,可以自行替換 24 var zh_s = '皚藹礙愛翱襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊綳筆畢斃閉邊編貶變辯辮鱉癟瀕濱賓擯餅撥缽鉑駁卜補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟產闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁痴遲馳恥齒熾沖蟲寵疇躊籌綢丑櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨盪檔搗島禱導盜燈鄧敵滌遞締點墊電淀釣調迭諜疊釘頂錠訂東動棟凍斗犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩范販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦復負訃婦縛該鈣蓋干趕稈贛岡剛鋼綱崗皋鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規硅歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅后壺護滬戶嘩華畫划話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴匯諱誨繪葷渾伙獲貨禍擊機積飢譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢鹼礆揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較秸階節莖驚經頸靜鏡徑痙競凈糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離里鯉禮麗厲勵礫歷瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴凌靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿么霉沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆捻釀鳥聶嚙鑷鎳檸獰寧擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪朴譜臍齊騎豈啟氣棄訖牽扦釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻抬攤貪癱灘壇譚談嘆湯燙濤絛騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍為濰維葦偉偽緯謂衛溫聞紋穩問瓮撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈杴鮮纖咸賢銜閑顯險現獻縣餡羡憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶銹綉虛噓須許緒續軒懸選癬絢學勛詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顏閻艷厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠葯爺頁業葉醫銥頤遺儀彝蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁佣癰踴詠涌優憂郵鈾猶游誘輿魚漁娛與嶼語吁御獄譽預馭鴛淵轅園員圓緣遠願約躍鑰岳粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓臟鑿棗灶責擇則澤賊贈扎札軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫眾謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁庄裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽致鍾么為只凶准啟板里靂余鏈泄'; 25 var zh_t = '皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調疊諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊洩'; 26 String.prototype.tran = function() { 27 var s1,s2; 28 if (zh_choose == 't') { 29 s1 = zh_s; 30 s2 = zh_t; 31 }else if(zh_choose == 's') { 32 s1 = zh_t; 33 s2 = zh_s; 34 }else { 35 return this; 36 } 37 var a = ''; 38 var l = this.length; 39 for(var i=0;i<this.length;i++){ 40 var c = this.charAt(i); 41 var p = s1.indexOf(c) 42 a += p < 0 ? c : s2.charAt(p); 43 } 44 return a; 45 } 46 function setCookie(name, value) { 47 var argv = setCookie.arguments; 48 var argc = setCookie.arguments.length; 49 var expires = (argc > 2) ? argv[2] : null; 50 if (expires != null) { 51 var LargeExpDate = new Date (); 52 LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24)); 53 } 54 document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString())); 55 } 56 function getCookie(Name) { 57 var search = Name + "=" 58 if (document.cookie.length > 0) { 59 offset = document.cookie.indexOf(search); 60 if(offset != -1) { 61 offset += search.length; 62 end = document.cookie.indexOf(";", offset); 63 if(end == -1) end = document.cookie.length; 64 return unescape(document.cookie.substring(offset, end)); 65 }else { 66 return ''; 67 } 68 } 69 } 70 function zh_tranBody(obj) { 71 var o = (typeof(obj) == "object") ? obj.childNodes : document.body.childNodes; 72 for (var i = 0; i < o.length; i++) { 73 var c = o.item(i); 74 if ('||BR|HR|TEXTAREA|SCRIPT|'.indexOf("|"+c.tagName+"|") > 0) continue; 75 if (c.className == zh_class) { 76 if (c.id == zh_class + '_' + zh_choose) { 77 c.setAttribute('style', zh_style_active); 78 c.style.cssText = zh_style_active; 79 }else { 80 c.setAttribute('style', zh_style_inactive); 81 c.style.cssText = zh_style_inactive; 82 } 83 continue; 84 } 85 if (c.title != '' && c.title != null) c.title = c.title.tran(); 86 if (c.alt != '' && c.alt != null) c.alt = c.alt.tran(); 87 if (c.tagName == "INPUT" && c.value != '' && c.type != 'text' && c.type != 'hidden' && c.type != 'password') c.value = c.value.tran(); 88 if (c.nodeType == 3) { 89 c.data = c.data.tran(); 90 }else{ 91 zh_tranBody(c); 92 } 93 } 94 } 95 function zh_tran(go) { 96 if (go) zh_choose = go; 97 setCookie('zh_choose', zh_choose, zh_expires); 98 if (go == 'n') { 99 window.location.reload(); 100 }else { 101 zh_tranBody(); 102 } 103 } 104 function zh_getLang() { 105 if (getCookie('zh_choose')) { 106 zh_choose = getCookie('zh_choose'); 107 return true; 108 } 109 if (!zh_autoLang_t && !zh_autoLang_s) return false; 110 if (getCookie('zh_autoLang_checked')) return false; 111 if (navigator.language) { 112 zh_browserLang = navigator.language; 113 }else if (navigator.browserLanguage) { 114 zh_browserLang = navigator.browserLanguage; 115 } 116 if (zh_autoLang_t && zh_langReg_t.test(zh_browserLang)) { 117 zh_choose = 't'; 118 }else if (zh_autoLang_s && zh_langReg_s.test(zh_browserLang)) { 119 zh_choose = 's'; 120 } 121 zh_autoLang_checked = 1; 122 setCookie('zh_choose', zh_choose, zh_expires); 123 if (zh_choose == zh_default) return false; 124 return true; 125 } 126 function zh_init() { 127 zh_getLang(); 128 c = document.getElementById(zh_class + '_' + zh_choose); 129 if (zh_choose != zh_default) { 130 if (window.onload) { 131 window.onload_before_zh_init = window.onload; 132 window.onload = function() { 133 zh_tran(zh_choose); 134 if (getCookie('zh_autoLang_check')) {alert(zh_autoLang_msg);}; 135 window.onload_before_zh_init(); 136 }; 137 }else { 138 window.onload = function() { 139 zh_tran(zh_choose); 140 if (getCookie('zh_autoLang_check')) {alert(zh_autoLang_msg);}; 141 }; 142 } 143 } 144 } 145 zh_init();
通過傳遞不同的參數可以實現切換
<input type="button" value="繁體" onclick="zh_tran('t');"/> <input type="button" value="簡體" onclick="zh_tran('s');"/>
測試頁面:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>繁簡轉換測試</title> 6 <script type="text/javascript" src="zh.js"></script> 7 </head> 8 <body> 9 <p>繁簡測試</p> 10 <p>張順海</p> 11 <input type="button" value="繁體" onclick="zh_tran('t');"/> 12 <input type="button" value="簡體" onclick="zh_tran('s');"/> 13 </body> 14 </html>