簡単な説明<br />IE6および7では、一般的なaタグ(HTMLで記述され、DOM操作によってページに挿入されるaタグ)において、hrefの値が相対パスである場合、元のhrefの値はa.getAttribute("href")を介して直接取得されず、a.getAttribute("href",2)を介して取得されます。ただし、このaタグがinnerHTMLを介して挿入されている場合、a.getAttribute("href",2)を介しても元のhrefの値を取得できません。 innerHTML='<a href="/haha">test</a>' とすると、IE6,7 ではそれに対する互換処理が行われ、何らかの追加が行われると予測されます。このとき、outerHTML を通して見ると、a の href がすでに完全なアドレスになっています -_-! img の src でも同様の状況が発生すると言われています。 コードをコピー コードは次のとおりです。<!doctypehtml> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>テスト</title> </head> <本文> <a id="a" href="" onclick=".getAttribute(\"href\",2)">テスト</a> </本文> </html> IE6 または 7 でクリックすると、大きな「/haha」がポップアップ表示されます。 ! !何か他のことが起こっているのではないかと疑い始めました。このとき、a タグがどのようにして (文字列ベースの js テンプレート、innerHTML) 取得されるのかを考えました...そこで、次のコードでシミュレートしました。 コードをコピー コードは次のとおりです。<!doctypehtml> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>テスト</title> </head> <本文> <div id="test"></div> <スクリプト> document.getElementById("test").innerHTML = '<a id="a" href="/haha" onclick="alert(this.getAttribute(\'href\',2));return false;">テスト</a>'; </スクリプト> </本文> </html> 再度テストしました...妹の...問題が再発しました!実際のテストでは、を生成した後、再度 a に対して setAttribute("href","/haha",2) を実行し、次に getAttribute("href",2) を実行すると、"/haha" が返されます。でも、こういうことをテンプレートでやるのは、あまりにも気持ち悪いので、きっぱり諦めましょう!フランクのアドバイスに耳を傾けた方が良いでしょう... 2 つのリンク要素を識別する属性を追加するだけで、行き詰まらないようにしましょう。 もう一度ドリル-_-!: コードをコピー コードは次のとおりです。<!doctypehtml> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>テスト</title> </head> <本文> <div id="test"></div> <スクリプト> var テスト = document.getElementById("テスト"); var a = document.createElement("a"); var txt = document.createTextNode("テスト"); a.href="/はは"; a.onclick=関数() { alert(this.getAttribute('href',2));//"/はは" false を返します。 }; txt を追加します。 テストします。 </スクリプト> </本文> </html> 最後に、innerHTML を通じてノードを挿入する場合、IE6 と 7 は正しいと判断する「エラー許容」処理を実行するのではないかと思います...そして、私は間違っていました... |
<<: IDEA が Docker を統合してリモート展開を実現するための手順
>>: MySQL の undo、redo、binlog の違いを簡単に分析します
特記事項:この記事は、Chris Spooner の英語記事「Web デザイン用の Retina グ...
この記事の例では、メモ帳の小さな機能を実現するためのvueの具体的なコードを参考までに共有しています...
私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...
pssh は、多数のマシンでのバッチ ssh 操作に使用される、Python で実装されたオープン ...
1. フォントのプロパティcolorは、div{color:red;}のようにテキストの色を指定しま...
インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...
1. チューニングの必要性 私は、どのように書けばいいのか本当に分からないので、共有するために最適...
目次1. 概要2. 応用例2.1、Docker コンテナ分離名前空間2.2. Docker のフリー...
純粋なCSS3で蝶が羽ばたく様子を再現。まずはその効果をご覧ください どうですか?効果はかなりいいで...
この記事では、JSカルーセル効果の具体的なコードを実現するための3つの方法を紹介します。具体的な内容...
包括的なドキュメントgithubアドレスhttps://github.com/RocketChat/...
rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。ほとんどのオープンソース ...
Kubernetes は、アプリケーションの移植性とハイブリッド クラウド/マルチクラウドの展開をサ...
クリックハウスの紹介ClickHouse は、SQL クエリを使用して分析データ レポートをリアルタ...
スタイルシートの最も重要な機能の 1 つは、ページ、画面、電子シンセサイザーなどの複数のメディアに適...