ここでの紹介は、基本的にDOMを作成するか、JavaScriptを介して計算することにより、2つの方法です。
1)新しく作成された画像は、テスト後に中止されたリクエストが送信されます;
コードコピーは次のとおりです。
関数getabsoluteurl(url){
var img = new Image();
img.src = url; //この時点でリクエストが送信されます
url = img.src; //
img.src = null; //リクエストをキャンセルします
return url;
}
getabsoluteurl( "Showroom/list");
2)アンカー(リンク)を作成します。
コードコピーは次のとおりです。
/ *jslint regexp:true、white:true、maxerr:50、indent:2 */
function parseuri(url){
var m = string(url).replace(/^/s+|/s+$/g、 '').match(/^([^://?#]+:)?(////(?: [^:@]*(?:: [^:@]*)?@)?(([^://?#]*)(?::(/d*))?)?([^ ?#]*)(/?[^#]*)?(#[/s/s]*)?/);
// Authority = '//' + user + ':' + pass '@' + hostname + ':'ポート
return(m?{
href:m [0] ||。
プロトコル:m [1] ||。
権限:m [2] ||。
ホスト:m [3] ||。
ホスト名:m [4] ||。
ポート:m [5] ||。
パス名:m [6] ||。
検索:m [7] ||。
ハッシュ:M [8] ||。
}:null);
}
関数Absoluteuri(base、href){// rfc 3986
関数removedotsegments(input){
var output = [];
input.Replace(/^(/./.?(// | $)+/、 '')
.replace(////.(/// $)+/g、 '/')
.replace(///./.$/、 '/../')
.replace(///?[^//]*/g、function(p){
if(p === '/..'){
output.pop();
} それ以外 {
output.push(p);
}
});
return output.join( '')。置き換え(/^///、input.charat(0)=== '/'? '/': '');
}
href = parseuri(href || '');
base = parseuri(base || '');
return!href ||!
(href.protocol || href.authority?href.authority:base.authority) +
removedotsegments(href.protocol || href.authority || href.pathname.charat(0)=== '/'?href.pathname:(href.pathname?((base.authority」)((base.authority」 ':' ') + base.pathname.slice(0、base.pathname.lastindexof('/') + 1) + href.pathname):base.pathname) +
(href.protocol || href.authority || href.pathname?href.search:(href.search || base.search) +
href.hash;
}
当社の製品はモバイルWebページであるため、IE6をサポートしなくなり、2番目のソリューションが最終的に使用されます。
元の方法を使用してすべての画像とアンカーにアクセスすると、元の相対パスを返す場合は、すべての場合、DOMのクエリの方法を使用できることがわかります。 jquery.attr()メソッド:
コードコピーは次のとおりです。
//絶対パスを返し、jQueryオブジェクトは本質的に「クラスアレイ」構造(引数と同様)であるため、[0]を使用して元のオブジェクトにアクセスしてから「href」を取得できます。
console.log($ anchor [0] ["href"]);
//元のパスに戻ります
console.log($ anchor.attr( "href"));