js搞定網頁的簡繁轉換

對網頁進行簡繁字體轉換的方法通常有兩種:一是使用《簡繁通》這樣的專業軟件,另一種是製做兩套版本的網頁。顯然,這兩種方法都較爲麻煩,並且專業軟件通常不能用於免費的空間。筆者在這裏給你們提供一個很是簡單的方法,只須在頁面上添加幾行代碼就能夠輕鬆搞定網頁的簡繁轉換了。 

  首先下載用於簡繁轉換的js文件transform.js:javascript

//*===========================================================================
//* (c)copyright 2000 liqwei
//* Email: liqwei(at)liqwei.com
//*  Site: http://www.liqwei.com/
//*===========================================================================
//* 功能:負責簡繁體轉換,須要放在頁面底部;
//* 版本:v1.0;
//*===========================================================================
//功能:轉換對象,使用遞歸,逐層剝到文本;
function transformContent(switcherId, fobj){
    if(typeof(fobj)=="object"){
        var obj=fobj.childNodes
    } else {    
        if(parseInt(fobj)!=0){ //在頁面初始化時控制不更新當前頁面語言狀態;
            var switcherObj = document.getElementById(switcherId);
            with(switcherObj){
                if(parseInt(isCurrentFt)){
                    innerHTML = innerHTML.replace('簡','繁')
                    title = title.replace('簡','繁')
                }else{
                    innerHTML = innerHTML.replace('繁','簡')
                    title = title.replace('繁','簡')
                }
            }
            switcherObj.innerHTML=transformText(switcherObj.innerHTML, isCurrentFt)
            switcherObj.title=transformText(switcherObj.title, isCurrentFt)    
            
            if(isCurrentFt=="1"){isCurrentFt="0"}else{isCurrentFt="1"}
            writeCookie("isCurrentFt",isCurrentFt)
        }
        var obj=document.body.childNodes
    }
    for(var i=0;i<obj.length;i++){
        var OO=obj.item(i)
        if("||BR|HR|TEXTAREA|".indexOf("|"+OO.tagName+"|")>0||OO.id==switcherId)continue;
        if(OO.title!=""&&OO.title!=null)OO.title=transformText(OO.title, isCurrentFt);
        if(OO.alt!=""&&OO.alt!=null)OO.alt=transformText(OO.alt, isCurrentFt);
        if(OO.tagName=="INPUT"&&OO.value!=""&&OO.type!="text"&&OO.type!="hidden")OO.value=transformText(OO.value, isCurrentFt);
        if(OO.nodeType==3){OO.data=transformText(OO.data, isCurrentFt)}
        else transformContent(switcherId, OO)
    }
}
//功能:轉換指定字符串;
function transformText(txt, isFt){
    if(txt==null || txt=="")return ""
    if(parseInt(isFt)){return s2t(txt)}else{return t2s(txt)}
}
//功能:簡體字符轉爲繁體字符;
function s2t(cc){
    var str='',ss=jtpy(),tt=ftpy();
    for(var i=0;i<cc.length;i++){
        var c = cc.charAt(i);
        if(c.charCodeAt(0)>10000&&ss.indexOf(c)!=-1)str+=tt.charAt(ss.indexOf(c));
          else str+=c;
    }
    return str;
}
//功能:繁體字符轉爲簡體字符;
function t2s(cc){
    var str='',ss=jtpy(),tt=ftpy();
    for(var i=0;i<cc.length;i++){
        var c = cc.charAt(i);
        if(c.charCodeAt(0)>10000&&tt.indexOf(c)!=-1)str+=ss.charAt(tt.indexOf(c));
          else str+=c;
    }
    return str;
}
function jtpy(){
    return '皚藹礙愛翱襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鱉癟瀕濱賓擯餅撥鉢鉑駁卜補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟產闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾衝蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調迭諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦復負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗皋鎬擱鴿閣鉻個給龔宮鞏貢鉤溝構購夠蠱顧剮關觀館慣貫廣規硅歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶譁華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴匯諱誨繪葷渾夥獲貨禍擊機積飢譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢鹼礆揀撿簡儉減薦檻鑑踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較秸階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫歷瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴凌靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄滷虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麼黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆捻釀鳥聶齧鑷鎳檸獰寧擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扦釺鉛遷籤謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅溼詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談嘆湯燙濤絛騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈杴鮮纖鹹賢銜閒顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顏閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彝蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踊詠涌優憂郵鈾猶遊誘輿魚漁娛與嶼語籲御獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈扎札軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲賬帳脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽致鍾麼爲只兇準啓板裏靂餘鏈泄';
}
function ftpy(){
    return '皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調疊諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麼黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊洩';
}
//功能:獲取指定名稱的 Cookie 值;
function readCookie(name) {
  var value = "";
  if(document.cookie.length > 0){
      var prefix = name + "="; 
      var begin = document.cookie.indexOf(prefix);
      if (begin != -1) {
            begin += prefix.length;
            var end = document.cookie.indexOf(";", begin);
            if (end == -1)    end = document.cookie.length;
            value = unescape(document.cookie.substring(begin, end));
      }
  }
  return value;
}
//功能:設置指定名稱的 Cookie 值;
function writeCookie(name, value, days){
    var argv = writeCookie.arguments;
    var argc = writeCookie.arguments.length;
    var days = (argc>2)?argv[2]:null;
    if(days!=null){
        var expireDate = new Date();
        expireDate.setTime(expireDate.getTime() + (days*1000*3600*24));
    }
    document.cookie = name+"="+escape(value) + ((days==null)?"":("; expires=" +expireDate.toGMTString())) +"; path=/";
}

var isCurrentFt;
//功能:頁面初始化函數
//    switcherId  文字連接,點擊負責簡繁切換,建議:<a id="switcher_link" href="#">繁體中文</a>;
//    isDefaultFt 當前文檔默認是否爲繁體中文;
//    delay 頁面加載後的轉換延遲時間,單位毫秒;
//    使用的 Cookie 變量名稱:isCurrentFt
function initPageLanguage(switcherId, isDefaultFt, delay){
    isDefaultFt = isDefaultFt?"1":"0";
    var switcherObj=document.getElementById(switcherId)
    isCurrentFt=readCookie("isCurrentFt")
    if(isCurrentFt==null || isCurrentFt=="") isCurrentFt=isDefaultFt
    with(switcherObj){
        if(typeof(document.all)!="object") {//非IE瀏覽器
            href="javascript:transformContent('"+ switcherId +"');"
        }else{
            href="#";
            onclick= new Function("transformContent('"+ switcherId +"');return false;")
        }
        if(title == null || title=="") title = "點擊以繁體中文方式瀏覽";
        if(parseInt(isCurrentFt)) {
            innerHTML = innerHTML.replace('繁','簡')
            title = title.replace('繁','簡')
        }
        innerHTML = transformText(innerHTML, parseInt(isCurrentFt)?0:1)
        title = transformText(title, parseInt(isCurrentFt)?0:1)
    }        
    if(isCurrentFt!=isDefaultFt){setTimeout("transformContent('"+ switcherId +"',0)",delay)}
}
// 初始化調用接口
//initPageLanguage("switcher_link", false, 50);

複製到網站目錄下,而後使用網頁製做工具打開須要進行簡繁轉換的網頁,在代碼中的加入以下代碼: java

以前用obj.innerHTML=s2t(obj.innerHTML)  出錯: Unable to get property 'innerHTML'  of undefined or null reference .node

 

後改成:瀏覽器

<script type="text/javascript" src="transform.js"></script>     
<script type="text/JavaScript" language="JavaScript">
         // var obj = document.body;
          function s22t(){
              document.body.innerHTML=s2t(document.body.innerHTML);
             // document.body.innerHTML
          }
          function t22s(){
              document.body.innerHTML=t2s(document.body.innerHTML);
          }
      </script>

 而後在網頁的適當位置添加簡繁轉換連接:<a href="javascript:s22t()">繁體中文</a><a href="javascript:t22s()">簡體中文</a> 

保存頁面後,點擊「繁體中文」連接,頁面就會成繁體,點擊「簡體中文」就會自動轉換爲簡體形式,方便不一樣用戶的選擇瀏覽了。 

提示:這種方法不只適用於靜態網站還能夠用在論壇、留言板等動態網站系統中。cookie

 

二 優化後  利用Cookie 整站可轉爲繁體 函數

1 .將如下代碼加入到 transform.js 的前面: 而後引入文件 工具

<script type="text/javascript" src="transform.js"></script> 
function s22t(){
    document.cookie  = 'cmlan=tw';  //設置cokie
    document.body.innerHTML=s2t(document.body.innerHTML);
}
function t22s(){
    document.body.innerHTML=t2s(document.body.innerHTML);
    //如下刪除cookie
    var date=new Date();
    date.setTime(date.getTime()-1000)
    document.cookie="cmlan=tw; expires="+date.toUTCString();
}
//判斷是否存在名爲cmlan的cookie,使用document.cookie.indexOf(「cmlan=」)來判斷,若是返回值是-1,表示不存在。
function myfun() { c_start=document.cookie.indexOf("cmlan="); if(c_start==-1){ //document.body.innerHTML=t2s(document.body.innerHTML); //無需轉化 } else{ document.body.innerHTML=s2t(document.body.innerHTML); //加載轉化爲繁體 } } /*用window.onload調用myfun() 網頁打開時加載如下方法*/ window.onload=myfun;//不要括號

2:在網頁的適當位置添加簡繁轉換連接:<a href="javascript:s22t()">繁體中文</a><a href="javascript:t22s()">簡體中文</a> 字體

相關文章
相關標籤/搜索