1

データを取得してデータベースに保存するために innerHTML を作成します。Firefox で試したところ、属性の引用符 (" または ') が正しく表示されます。しかし、IE では、属性の引用符 (" または ') が取得されません。これはブラウザの問題ですか?これに対する任意の答え。

ありがとう

4

2 に答える 2

2

はい、これはブラウザーの問題であり、IE のやり方です。HTML のすべての属性に引用符が必須ではないことに注意してください。したがって、IE の出力が無効になるわけではありません。XHTML が必要な場合は、DOM を歩いて自分で作成する必要があります。

于 2010-04-28T09:22:13.080 に答える
1

はい。を使用するinnerHTMLと、ブラウザーは DOM 要素と要素内の属性に基づいて HTML を再作成します。最近まで標準が存在しなかったため、ブラウザーによって動作が異なります ( innerHTMLMicrosoft のイノベーションであり、ほぼすべての人が採用し、HTML5で標準化されています)。マークアップが次のようになっている場合:

<span style="color: red" id="foo">...</span>

そのための IE は次のinnerHTMLようになります。

<SPAN id=foo style="COLOR: red">...</SPAN>

...一方、Firefox と Chrome はオリジナルにかなり近いです。

IE が提供するのは有効な HTML (スペースを含まない属性の引用符を省略でき、大文字のタグ名も問題ありません) ですが、有効な XHTML ではありません (それが重要な場合) )。

DOM ツリーを自分でトラバースするか、IE の結果を後処理することで、必要に応じて独自の (X)HTML 文字列を作成できます。

良いニュースは、現在それinnerHTML標準化されていることです。標準では、結果は XML ドキュメント (XHTML ドキュメント) 内の有効な XML である必要があると明確に述べられています。Microsoft は、この分野の標準に、彼らよりも熱心に取り組んでいるためです。この点に関しては、IE9 の方がうまくいく可能性があります。

于 2010-04-28T09:30:31.043 に答える