簡単な説明<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 の違いを簡単に分析します
どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...
Web ページのスタイル設定に関しては、プロジェクトで純粋な CSS または SCSS (および他...
Tomcat8 イメージをダウンロード [root@localhost ~]# docker sea...
この記事では、登録またはログイン時に電子メール アドレスを入力する際のドロップダウン プロンプトのネ...
具体的な方法:まずコマンドプロンプトを開きます。次に、[ mysql -u root -p ] コマ...
1. データベースを作成します。 データ data _name を作成します。 PHP でデータベー...
目次1. 大文字と小文字の区別を決定するパラメータ2. パラメータ変更に関する注意事項要約: 1. ...
目次予防必要条件AWSアカウントを申請する仮想マシンの申請と有効化仮想マシンを申請するセキュリティグ...
MySQL UTF-8 エンコーディングMySQL は 2003 年のバージョン 4.1 から U...
目次1. オフラインインストール2. オンラインインストール3. アンインストール4. ymlファイ...
今日は、MySQL データベースと SQL 標準 (および他のデータベース) の UPDATE ステ...
まず、ページ分割クエリを使用する理由を明確にする必要があります。データが膨大なため、すべてのデータを...
序文まずここで説明させてください。インターネット上では、Alibaba では 500 万のデータを異...
目次確認する:例の検証と組み合わせるselect クエリ ステートメントはロックされませんが、sel...
通常、ユーザーがアップロードした写真はデータベースに保存する必要があります。一般的に、解決策は 2 ...