很多時候我們有從一個URL中提取域名,查詢關鍵字,變量參數(shù)值等的需要,而萬萬沒想到可以讓瀏覽器方便地幫我們完成這一任務而不用我們寫正則去抓取。方法就在JS代碼里先創(chuàng)建一個a標簽然后將需要解析的URL賦值給a的href屬性,然后就得到了一切我們想要的了。

成都創(chuàng)新互聯(lián)公司制作網站網頁找三站合一網站制作公司,專注于網頁設計,網站設計、網站制作,網站設計,企業(yè)網站搭建,網站開發(fā),建網站業(yè)務,680元做網站,已為上1000家服務,成都創(chuàng)新互聯(lián)公司網站建設將一如既往的為我們的客戶提供最優(yōu)質的網站建設、網絡營銷推廣服務!
var a = document.createElement('a'); ?
a.href = 'htt p:/ / s.h tml'; ?
console.log(a.host);
利用這一原理,稍微擴展一下,就得到了一個更加健壯的解析URL各部分的通用方法了。
function parseURL(url) {
var a = ?document.createElement('a');
a.href = url;
return {
? ?source: url,
? ?protocol: a.protocol.replace(':',''),
? ?host: a.hostname,
? ?port: a.port,
? ?query: a.search,
? ?params: (function(){
? ? ? ?var ret = {},
? ? ? ? ? ?seg = a.search.replace(/^\?/,'').split(''),
? ? ? ? ? ?len = seg.length, i = 0, s;
? ? ? ?for (;ilen;i++) {
? ? ? ? ? ?if (!seg[i]) { continue; }
? ? ? ? ? ?s = seg[i].split('=');
? ? ? ? ? ?ret[s[0]] = s[1];
? ? ? ?}
? ? ? ?return ret;
? ?})(),
? ?file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
? ?hash: a.hash.replace('#',''),
? ?path: a.pathname.replace(/^([^\/])/,'/$1'),
? ?relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
? ?segments: a.pathname.replace(/^\//,'').split('/')
};
}
用法
var myURL = parseURL('htt p:/ /abc.com:8080/dir/inde x.h tml?id=255m=hello#top');
myURL.file; ? ? // = 'index.html'
myURL.hash; ? ? // = 'top'
myURL.host; ? ? // = 'abc.com'
myURL.query; ? ?// = '?id=255m=hello'
myURL.params; ? // = Object = { id: 255, m: hello }
myURL.path; ? ? // = '/dir/index.html'
myURL.segments; // = Array = ['dir', 'index.html']
myURL.port; ? ? // = '8080'
myURL.protocol; // = 'http'
myURL.source; ? // = 'htt p:/ /abc.com:8080/dir/index.h tml?id=255m=hello#top'
$(function(){$("#ss").click(function(){
var str="";
var msg="";
var dns=$("#dns").val();
$('[name=ext]:checkbox:checked').each(function(){str+=$(this).val()+",";})
str=str.substr(0,str.lastIndexOf(","));
var k=str.split(",");
var c = 0;
function checkDns(){
if (c k.length){
var postinfo = dns+k[c];
$.get("",
{domain:postinfo},
function(data){
var have="registered";
if (have.indexOf(data)0){
msg+=postinfo+":已經被注冊";
}else{
msg+=postinfo+":還沒被注冊";
}
c++;
checkDns();
})
}else{
alert(msg);
}
}
checkDns();
})
})
程序是可以運行了,就是不知道checkdomain網站返回的是什么類型的數(shù)據,因為我在我電腦上看到的是空值。
jquery自身的功能是不支持的,但是你可以基于jquery實現(xiàn)跨域post。
jquery本身只支持jsonp跨域,但是jsonp的原理限制了只能支持get。
如果想要實現(xiàn)原生jquery跨域,在你的請求地址的head里面加上Access-Control-Allow-Origin,值設置成調用該API的域名(或者*),優(yōu)點是代碼修改少,前端js代碼無需任何改動。
或者用iframe + window.name方式,比較麻煩,后端前端都要改,優(yōu)點是兼容性強。
或者用postMessage,優(yōu)點是方便,缺點IE支持的不是很好。
新聞名稱:jquery域名,js 域名
URL分享:http://chinadenli.net/article32/dsgoepc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、網站導航、網站營銷、解決方案、建站公司、用戶體驗
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)