0

XML/XSL から生成され、その場で Javascript がレイアウトを生成する Web ページのかなり広範なコードを調べています。私が問題を抱えているのは、値がない場合は要素が空のテキスト ノードであり、値がある場合は通常のテキスト (編集可能なフィールドがない) であることを IE (具体的には v.10) が示しているようです。

これにより、 の動作が変更され、編集不可能なテキストになるようです。

私が見ることができる最初のステップは、Javascript が DOM を介して要素を生成することです。

input = document.createElement("input");

input.setAttribute("id", "blah");
input.setAttribute("type", "text");

次に、それを親に追加します。次に、ページを再度実行し、これらのフィールドにある値を挿入する関数が実行されるようです。

input.value = "Hello World";

Chrome と Firefox では入力フィールドが入力された状態で適切に表示されますが、IE10 では値がプレーン テキストであるかのようにしか表示されません。

私はこの種の Web ページ生成を行ったことがないので、誰かがこれを理解するのを手伝ってくれて、これをトラブルシューティングできることを願っています。これが機能する方法を変更することは (現時点では) オプションではないため、IE も満足できるように修正しようとしています。

ありがとう

4

1 に答える 1

2

この特定のコード シーケンスは、私が試したすべてのブラウザー (Chrome、IE、Firefox) で動作します。

var elem = document.createElement("input");
elem.type = "text";
elem.id = "test";
document.body.appendChild(elem);
elem.value = "This is some text";

正確なコードがこれとは異なる場合は、相違点を調べるか、IE で問題を示すコードの正確なシーケンスを投稿して、デバッグまたはアドバイスの方法をより適切に把握する必要があります。

ここで試してみたい任意のブラウザーで、これの動作するデモを見ることができます: http://jsfiddle.net/jfriend00/z2FpP/

コードで注意すべきこと:

  1. .innerHTML子要素を一掃またはリセットする可能性のある親のコード設定です。
  2. フィールド自体.innerHTMLの任意のコード設定です。inputこれは行うべきではありません。コードは.value、フィールドのテキストを設定するために使用する必要がありinputます。
  3. IE でコードを実行すると、コード エラーは発生しますか? エラー コンソールまたはデバッグ コンソールを確認します (IE で F12 を押して、エラー コンソールを表示できるデバッガーに移動します)。
  4. input編集可能ではなく読み取り専用にする可能性のあるフィールドに設定されている他の属性はありますか?
于 2013-05-02T22:35:57.207 に答える