javascript 取得 比對 替換 網址 轉址 這些的用法

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

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

此問題,其實租個域名綁定,就可以解決,也比較好,只是對,久久才PO文章的人來說,又有點浪費。

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

 
<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 用途解說:

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

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




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

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

Ⅱ、用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 的轉址方式有二種:

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

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

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

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

大略解說就這樣了,其他文章,請參考 → 25_javascript學習
 




此篇教學之youtube視頻解說:http://www.youtube.com/watch?v=AZqbJyJ50z4



謝謝大家,抽空觀看,file備份,檔名:javascriptguides003.mp4

留言

秘密留言

No title

I was suggested this blog by my cousin. I am not sure whether this post
is written by him as no one else know such detailed about
my difficulty. You are wonderful! Thanks!