英語: リンクタグはIEでhrefを自動的に補完します

英語: リンクタグはIEでhrefを自動的に補完します IE linkobj.href; x IE linkobj.getAttribute('href'); x IE linkobj.getAttribute('href',2); x Gecko linkobj.href; x Gecko linkobj.getAttribute('href'); x Gecko linkobj.getAttribute('href',2);x Opera linkobj.href; x Opera linkobj.getAttribute('href'); x Opera linkobj.getAttribute('href',2); x属性の取得テスト ページIE6、Firefox 1.5、Opera 8.51 でテストします。
では、getAttribute メソッドによって何が返されるのでしょうか。getAttributeメソッドの構造を規定する W3C DOM レベル 2 コア仕様では、この問題は取り上げられていません。どちらのアプローチが間違っているとか正しいということではありません。この点では、仕様は解釈の余地があります。
コーダーとしては、両方の値にアクセスできるようにしたいと考えています。この問題に対処するには、DOM コア仕様を更新する必要があります。
以下のコメントで Jim と非常に有意義なやり取りをした後、私の考えは正されました。仕様では、getAttribute は絶対 URL ではなく属性値を返す必要があるとされています。Microsoft のアプローチは間違っています。
当面は、古いオブジェクトプロパティメソッドlinkobj.hrefを使用して、派生した絶対URLを返します。これは、すべてのブラウザで最も一貫した結果を提供します。関心のあるURL
W3C REC DOM レベル 2 getAttribute のコア仕様
getAttribute の Gecko ドキュメント
getAttribute に関する Microsoft ドキュメント
いつものように、この投稿を終えようとしていたときに、同じ主題について説明している QuickMode サイトでこのバグ レポートを見つけました。
getAttribute HREF は常に absolute.html です。

英語: IE では、リンク タグによって href が自動的に補完されます。
Ajax Link Tracker と MapSurface に取り組んでいるときに、DOM スクリプトを使用して href 属性を取得する方法に矛盾があることに気付きました。
href属性は他の要素属性とは異なり、ページURLのコンテキストに応じて値を設定できます。相対的なhref属性でリンクを設定すると、
<a href="../development/test1.html">テストページ</a>
ブラウザはページの現在の URL を確認し、リンクの絶対 URL を導出します。
http://www.glenn.jones.net/development/test1.html
これが問題の根本です。ブラウザによっては属性のテキストを返すものもあれば、派生した絶対 URL を返すものもあります。また、href 属性を取得する方法によっても結果は異なります。属性にアクセスする一般的な方法は 3 つあります。
linkobj.href; linkobj['href']; linkobj.getAttribute('href');
属性にアクセスするためのlinkobj.hrefおよびlinkobj['href'];メソッドは、一貫して派生した絶対 URL を返します。
Microsoft は、getAttribute メソッドに 2 番目のパラメータを追加することで、この問題に対処しようとしました。2 番目のパラメータは、0、1、または 2 に設定できます。パラメータが 2 に設定されている場合、メソッドは属性テキストを返します。その他の設定では、派生した絶対 URL が返されます。
linkobj.getAttribute('href'); linkobj.getAttribute('href',2);
派生
絶対URL
属性テキスト

<<:  MySQL DATE_FORMAT関数の使用

>>:  vagrant+virtualBoxで仮想マシンを構築する方法

推薦する

Ubuntu 18.04 での Pycharm インストール チュートリアルの実装

方法1: Pycharmをダウンロードしてインストールするダウンロードアドレス: https://w...

docker compose を使ってワンクリックで分散構成センター Apollo を展開するプロセスの詳細な説明

導入分散について話すときは、分散構成センター、分散ログ、分散リンク トラッキングなどについて考える必...

非常に優れた CSS スキル 10 選のコレクションと共有

ここでは、CSS テクニックを巧みに使用することで、HTML を変更せずにブログやテンプレートの外観...

素晴らしいCSS属性MASKの詳しい説明

この記事では、CSS の非常に興味深い属性マスクを紹介します。名前が示すように、マスクはマスクと翻訳...

ウェブページのグリッドデザインを考える

<br />元のアドレス: http://andymao.com/andy/post/8...

Xmeter APIインターフェーステストツールの使用状況の分析

XMeter API は、以下のサービスを含む、JMeter に基づくワンストップのオンライン イン...

MySQLはPartition関数を使用して水平分割戦略を実装します。

目次1件のレビュー2 水平分割の5つの戦略2.1 ハッシュ2.2 範囲2.3. キー2.4. リスト...

CSSカウンター関連属性の学習の詳細な説明

CSS カウンター属性はほぼすべてのブラウザ (IE8 を含む) でサポートされていますが、あまり使...

Dockerコンテナを使用してプロキシ転送とデータバックアップを実装する方法

序文アプリケーションを Docker コンテナとしてサーバーにデプロイする場合、通常はネットワークと...

開発効率の向上に役立つ 56 個の実用的な JavaScript ツール関数

目次1. デジタルオペレーション(1)指定された範囲内で乱数を生成する2. 配列操作(1)配列の順序...

Ubuntu 18.04 (コミュニティ エディション) に Docker CE をインストールする方法

古いバージョンをアンインストールする以前に古いバージョンをインストールしたことがある場合は、まずそれ...

CSS3のvar()を使用して実行時にscss変数の値を変更する詳細な説明

var() の紹介と使用法詳細 (MDN) IEは無効ですが、他の主流のブラウザは有効ですvar()...

Linuxはlsofコマンドを使用してファイルのオープンステータスを確認します

序文Linux では「すべてがファイル」であることは誰もが知っているので、ファイルのオープン状態を確...

2つのボールが交差する粘着効果を実現するCSSサンプルコード

これは純粋に CSS のみを使用して作成されたエフェクトです。簡単に言うと、このエフェクトは画像処理...

AIX マウント NFS の書き込み効率が低い場合の解決策

NFSが提供するサービスマウント: サーバー上で /usr/sbin/rpc.mountd サーボ ...