ホームページ > ウェブフロントエンド > jsチュートリアル > javascriptを使った相対パスから絶対パスへの変換例_基礎知識

javascriptを使った相対パスから絶対パスへの変換例_基礎知識

WBOY
リリース: 2016-05-16 16:55:41
オリジナル
1193 人が閲覧しました

ここで紹介するのは、基本的に、DOM を作成するか、JavaScript で計算する 2 つの方法です。

1) テスト後に新しく作成されたイメージを通じて Aborted リクエストが送信されますが、IE6 では新しいイメージを document.createElement('IMG') に変更することは同じではありません。この解決策;

コードをコピーします コードは次のとおりです。

function getAbsoluteUrl(url){
var img = new Image();
img.src = url; //画像に相対パスを設定するとリクエストが送信されます
url = img.src; //相対パスが絶対パスになりました。 path
img.src = null; // リクエストをキャンセル
return url;
}
getAbsoluteUrl("showroom/list");

2) アンカー (リンク) を作成します。このメソッドはリクエストを発行しません (リクエストは DOM に参加するときに生成されます)。ただし、IE6 はそれをサポートしていません

コードをコピーします コードは次のとおりです:

/*jslint regexp: true、white: true、maxerr : 50、indent: 2 */

function parseURI(url) {
var m = String(url).replace(/^s |s $/g, '').match (/^ ([^:/?#] :)?(//(?:[^:@]*(?::[^:@]*)?@)?(([^:/?#] *)( ?::(d*))?))?([^?#]*)(?[^#]*)?(#[sS]*)?/);
// 権限 = '// ' user ':' pass '@' hostname ':' port
return (m ? {
href : m[0] || '',
protocol : m[1] || '',
権限: m[2] || '',
ホスト: m[3] || '',
ホスト名: m[4] || '',
ポート: m[5 ] || '',
パス名 : m[6] || '',
検索 : m[7] || '',
ハッシュ : m[8]
} : null);
}

function absolutizeURI(base, href) {// RFC 3986

function RemoveDotSegments(input) {
var Output = [] ;
input.replace(/^(..?(/|$)) /, '')
.replace(//(.(/|$)) /g, '/')
.replace (//..$/, '/../')
.replace(//?[^/]*/g, function (p) {
if (p === ' /.. ') {
replace(/^//, input.charAt(0) === '/' ? '/' : '');
}

href = parseURI(href || '');
base = parseURI(base || '');

return !href || null : (href.protocol || base.protocol)
(href.protocol || href.authority ? href.authority :base.authority)
removeDotSegments(href.protocol || href.authority || href.pathname.charAt(0) == = '/' ? href.pathname : (href.pathname ? ( (base.authority && !base.pathname ? '/' : '')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 番目のソリューションを使用することになりました。
元のメソッドを使用してすべての画像とアンカーにアクセスすると、絶対パスが返されることがわかります。元の相対パスを返したい場合は、jQuery.attr() メソッドなどの DOM クエリ メソッドを使用できます。 :


コードをコピー



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート