页面

2009年3月7日

收集一些JS识别域名跳转代码

郁闷,我的迅雷站的域名不知道什么时候被GG ADSENSE给K了.仔细想了下,好象原来做小说站的时候就已经有不显示广告的现象.

不能做GG 垃圾站怎么活啊.呵呵。

废弃这个域名重新来?

岂不辜负了百度一片好意.

想出了这么个办法.

JS跳转到另外一个域名,这样百度蜘蛛依然爬我原来的域名,而访客一访问就跳到新域名了.

研究出了这个代码:


程序代码


<script language="javascript">

try

{

var s_domain = location.host;

var js_path = "不带http新域名";

if (s_domain != js_path)

{

var str=window.location.href;

var es=/老域名不带www/;

es.exec(str);

var right=RegExp.rightContext;

top.location.href = "http://"+js_path+right;

}

}

catch(e) { }


</script>


只跳到首页就用不着这个代码了,呵呵.

访问内容页的时候这个代码会自动访问新域名内容页.


下面百度到的一些好代码.收藏.


引用内容


js提取url参数的几种方法。

第一,正则表达式,直接找出参数等号右边的值即可。但是,如果该参数后还有&就不可行。


程序代码


<script language="javascript">

var str=window.location.href;

var es=/clid=/;

es.exec(str);

var right=RegExp.rightContext;

if(right=="1")

{

sub_nav_4.style.display = "block";

li4.style.background = "#a1ca00";

}

</script>


 


第二,把能找到的参数都付给argsarr数组,将来可以用argsarr[i]进行相应的访问,方法不错,太长,参数不容易记忆。


程序代码


/**//**

* 提取URL中的参数

*/

function getArgs()

{

//加上substring的意义是去掉查询字符串中的?号。

//var query = window.location.search.substring(1);


//定义一个数组,用于存放取出来的字符串参数。

var argsArr = new Object();


//获取URL中的查询字符串参数

var query = window.location.search;

query = query.substring(1);


//这里的pairs是一个字符串数组

var pairs = query.split("&");//name=myname&password=1234&sex=male&address=nanjing


for(var i=0;i<pairs.length;i++)

{

var sign = pairs[i].indexOf("=");

//如果没有找到=号,那么就跳过,跳到下一个字符串(下一个循环)。

if(sign == -1)

{

continue;

}


var aKey = pairs[i].substring(0,sign);

var aValue = pairs[i].substring(sign+1);


argsArr[aKey] = aValue;

}


return argsArr;

}


 


第三,最简单的方法,类似第二种,不过没有创建数组存参数,可直接访问参数的名字,容易看懂。


程序代码


<script language="javascript">

function getarg()

{

var url = unescape(window.location.href);

var allargs = url.split("?")[1];

var args = allargs.split("&");

for(var i=0; i<args.length; i++)

{

var arg = args[i].split("=");

eval('this.'+arg[0]+'="'+arg[1]+'";');

}

}

var urlarg=new getarg();

if(urlarg.clid=="1")

{

sub_nav_6.style.display = "block";

li6.style.background = "#a1ca00";

}

</script>


js获取URL地址某个参数数据


程序代码


function closeThis()

{

var paraName = URL_Request("UploadPanelName");

var cm=window.parent.document.getElementById(paraName);

if (cm.style.visibility=="visible")

{

cm.style.visibility = "hidden";

}

}


function URL_Request(strName)

{

var strHref = document.location.toString();

var intPos = strHref.indexOf("?");

var strRight = strHref.substr(intPos + 1);//==========获取到右边的参数部分

var arrTmp = strRight.split("&");//=============以&分割成数组

for(var i = 0; i < arrTmp.length-1; i++ ) //===========循环数组

{

var dIntPos = arrTmp[i].indexOf("=");

var paraName= arrTmp[i].substr(0,dIntPos);

var paraData= arrTmp[i].substr(dIntPos+1);


if(paraName.toUpperCase() == strName.toUpperCase())

{

return paraData;

}

}

return "";

}

</script>


用js获取当前url地址中的域名

[codevar getHost = function(url) {

var host = "null";

if(typeof url == "undefined"

|| null == url)

url = window.location.href;

var regex = /.*\:\/\/([^\/]*).*/;

var match = url.match(regex);

if(typeof match != "undefined"

&& null != match)

host = match[1];

return host;

}

alert(getHost());

alert(getHost('https://test.com/'));

alert(getHost('http://test.com/123.html'));][/code]


利用JS取得地址栏参数


程序代码


假设URL的地址是 http://localhost/test.html?player=shamohai


<script>


var add = top.location;//取得地址栏的URL

add = add.toString();

var showIndex = add.indexOf("?player=");//得到参数的位置


var showParam="";//需要得到的参数


if (playerIndex != -1) {

showParam= unescape(add.substring(playerIndex + 8, add.length));


}


</script>


用JS取得页面的参数


程序代码


function QueryString(para)

{

var retval="",s=location.search.replace("?","");

if(s=="")return "";s = s.split("&");

for(var i=0;i<s.length;i++)

if(s[i].toUpperCase().indexOf(para.toUpperCase() + "=")==0)

retval+=((retval==""?"":", ")+s[i].substr(s[i].indexOf("=")+1,s[i].length));

return retval;

}


JS的妙用就是多.

没有评论: