2014年11月27日 星期四

[JS 學習] javascript 取得 比對 替換 網址 轉址 這些的用法

搜索是用blogspot.com,然後尾綴對應區域變更,如台灣就是blogspot.tw,下述的js代碼溝想,是可以非blogspot.tw,則自動轉blogspot.tw,不過網頁,會跑2次

此問題,其實租個域名綁定,就可以解決,只是對,久久才PO文章的人來說,很浪費,也不會想去租域名

雖然zfly9已撤掉下述代碼;原本打算刪除此貼,但下述代碼,還是有許多地方可取,可參考,於是就留下來了

注意一下,無法在有google ads廣告的blogsopt站使用,不然會造成網頁執行2次,出現無效流量,目前本站已經撤掉,下述的自動轉址代碼

補充說明 2018年7月左右吧 blogspot 取消自動轉址,又改回 blogspot.com 了,太好了,不需要用下面代碼轉址了

<script type='text/javascript'>
try{ var g1url=location.href; }catch(e){ var g1url=window.location.toString(); }
var g2url=g1url.toLowerCase();
if(g2url.indexOf('.blogspot.')>0){
if(g2url.indexOf('.blogspot.tw')==-1){
var g3url = g2url.replace(/\.blogspot\.[a-z.]{2,5}/gi,'.blogspot.tw');
try{ document.location.href=g3url; }catch(e){ window.location=g3url; }
}
}
</script>

2015年9月29日,更新代碼,indexOf大小寫判斷較為嚴格,加入轉小寫部份

2015年10月4日,外圍在加一層.blogspot.判斷,避免編輯時,一直在轉跳






javascript 之 try 及 catch 用途解說

1、用來跑新指令,或不確定瀏覽器有無支援該函數,當try裡面出錯時,則跑catch內的東西

2、主要的功能是,當程式出錯時,還能繼續向下執行,而會不中斷,如在用ajax,獲取不到ajax回傳值時,就可以用try及catch處理



javascript 之獲得獲取url網址值,有2個方式

1、用location.href指令,如var g2url=location.href;,將網址內容放到g2url

2、用window.location.toString()指令,如var g2url=window.location.toString();,將網址內容放到g2url

try{ var g2url=location.href; }catch(e){ var g2url=window.location.toString(); }

當try裡面的方案出錯,抓不到網址時,就執行catch內的方案



javascript 用 indexOf 比對網址解說

indexOf 的用途,是查找字串,出現在第幾位,如

<script type='text/javascript'>
var str = "abcdefghijklmnopqrstuvwxyz";
var n = str.indexOf("f"); //n的值會是5
document.write(n);
</script>




比較重要的一點,就是找不到或不存在時,是回傳-1

if(g2url.indexOf('.blogspot.tw')==-1){

當找不到指定的字串時,則執行裡面的東西

}



javascript 用 replace 替換取代網址解說

g2url.replace(/\.blogspot\.[a-z.]{2,5}/gi,'.blogspot.tw');

正則 ●●● 額,一直是讓人頭痛的東西,比較好理解的方式,就是看成一個字一個字,由左至右的比對,符合所設置的規則時,就進行替換

\. 點是正則符號,前面要加反斜線,讓它還原成,普通的點

[a-z.] 意思是英文a到z,外加一個.

{2,5} 意思是比對2個到5個的值

g是全局比對,i是不分大小寫

<script type='text/javascript'>
//測試用代碼
var g2url='http://zfly9.blogspot.co.uk';
if(g2url.indexOf('.blogspot.tw')==-1){
var g3url = g2url.replace(/\.blogspot\.[a-z.]{2,5}/gi,'.blogspot.tw');
}
document.write(g3url);
</script>






javascript 的轉址方式有二種

1、document.location.href,將網址值丟到裡面,就會轉向該網址

2、window.location,將網址值丟到裡面,就會轉向該網址

try{ document.location.href=g3url; }catch(e){ window.location=g3url; }

當try裡面的方案出錯,無法轉網時,就執行catch內的方案


對上述圖文教學,還不太明白的話,請至下方連結,查看 youtube 視頻解說

視頻解說之第一部分 https://www.youtube.com/watch?v=AZqbJyJ50z4

謝謝大家,抽空觀看,files備份檔名 javascriptguides003

沒有留言:

張貼留言

留言後,需等待,站長的查看,才會公開,請勿重複留言,謝謝