英語: リンクタグは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で仮想マシンを構築する方法

推薦する

入力[type=file]の起動が遅くて動かなくなる問題を素早く解決します

入力タグタイプがファイルで、タグ内にaccpet="image/*"属性が設定さ...

JSフロントエンドモジュール化のいくつかの仕様についての簡単な説明

目次序文フロントエンドモジュール開発の価値厄介な名前の競合面倒なファイル依存関係モジュール化の利点C...

Vue がルート変更を監視するときに watch メソッドが複数回実行される理由と解決策

目次要件の説明:要件分析:ニーズの解決問題解決私はフロントエンドの新人ですが、バックエンドのバグの中...

Linux telnetコマンドの使用

1. はじめにtelnet コマンドは、リモート ホストにログインするために使用されます。これは、T...

Centos7 に Nginx 統合 Lua サンプル コードをインストール

序文私が使用しているパソコンはMacで、OSはmacOS Mojaveです。コンピュータに仮想マシン...

vue+elementUI で埋め込みテーブルを実装する方法の例

大学 4 年生のときのインターンシップ中に、表内のデータの番号をクリックすると、そのデータの下に新し...

webpackが静的リソースキャッシュを実装する方法

目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...

MySQL の文字セット utf8 を utf8mb4 に変更する方法

MySQL 5.5 の場合、文字セットが設定されていない場合、MySQL のデフォルトの文字セットは...

Docker で Node プロジェクトをビルドしてデプロイする方法

目次DockerとはクライアントサイドDocker基本的なDocker操作画像名画像をプルするその他...

TOM.COMのホームページリニューアルの経験

<br />何の警告もなく、cnBeta で TOM.COM の Web サイトが再設計...

MySQLクエリ文の実行プロセスを理解するための記事

序文要件を満たす特定のデータをデータベースから取得する必要があります。Select ABC FROM...

CentOS7 は rpm パッケージを使用して mysql 5.7.18 をインストールします

例示するこの記事は、2017 年 5 月 20 日に MySQL-5.7.18 を使用して作成されま...

テキストエリアの disabled 属性と readonly 属性の具体的な使用法

障害者の定義と使用法disabled 属性はブール属性です。 disabled 属性は、テキスト領域...

海外の無料写真素材サイトベスト9

良い画像素材のウェブサイトを見つけるのは難しいです。特に無料です。良い写真には非常に目を引く視覚効果...

vue3+threejs を使用して iView 公式サイトのビッグウェーブ特殊効果の例を模倣する

目次序文1. レンダリング2. コード3. 背景画像素材要約する序文Threejs は、Web ベー...