問題タブ [innerhtml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - innerHTML 副作用?
DOM 要素の参照に問題があり、innerHTML の更新と関係があることを突き止めたと思います。
この例では、予想どおり、最初のアラートで 2 つの変数が同じ要素を参照しています。奇妙なのは、親要素 (本文) の innerHTML を更新した後、どちらにも触れていないにもかかわらず、2 つの変数が異なると思われることです。
=== の代わりに == を使用しても、同じ結果が得られます。Firefox 3.5 と IE6 で同じ結果が得られます。2 番目のアラートが false と評価される原因は何ですか?
javascript - ページのコンテンツを取得するためのinnerHTMLの代替手段?
現在、innerHTMLを使用してHTML要素のコンテンツを取得していますが、一部のブラウザでは、ソースにあるものが正確に返されないことがわかりました。
たとえば、FirefoxでinnerHTMLを次の行で使用します。
戻ります:
IEでは、2つの終了する強力なタグを含む元の文字列を返します。ほとんどの場合、Firefoxが誤ったコードをクリーンアップすることは問題ではない(そして利点になるかもしれない)と思います。ただし、私が達成しようとしていることについては、元のHTMLソースに表示されているとおりの正確なコードが必要です。
これは可能ですか?私たちができる別のJavascript関数はありますか?
javascript - innerHTMLの動的同等物?
ユーザーによって変更された可能性のある要素の innerHTML を取得したいと考えています。
たとえば、ラジオ ボタンの状態を知りたいとします。
また
最新のブラウザーでは、innerHTML は、ページが読み込まれたときに元のタグを提供するだけです (ここで詳細に説明されているように)。ラジオ ボタンがユーザーによってチェックされたかどうかは記録されません。
更新された HTML を安全に取得する方法はありますか? Javascript でラジオ ボタン自体の状態を取得する方法があることは知っていますが、完全に更新された HTML が必要です。
ありがとう!
php - DOMNodeのinnerHTMLを取得する方法は?
PHP DOM実装で特定のDOMNodeのinnerHTMLを取得するためにどの関数を使用しますか?誰かが信頼できる解決策を与えることができますか?
もちろん、outerHTMLも同様です。
javascript - innerHTML により IE6 が (永久に) ロックアップする
私が取り組んでいるサイトでは、javascript で実装したいくつかのコントロールを使用してアニメーション化できる一連の画像をロードします。ロックアップして回復しない IE6 を除くすべてのブラウザーですべてが正常に動作します。少なくとも15分間はそこに座らせませんでした。
窒息している部分は、特定のdivの内容を変更しようとしている部分です。
問題の前に:
問題の後:
私はもう試した:
- animation_image 内のすべての要素を文字列として保存し、それを innerHTML に設定します
- animation_image で空の/プレースホルダー div を作成し、それらを個別に設定する
- innerHTML の代わりに appendChild を使用する
- 「animation_image」の下に別のdivを追加し、上記の3つの方法を使用してすべての画像/divをそこに配置します
IE6ではどれも機能しないようです-すべてのメソッドはFF3.0以降、IE7以降、Chrome 2以降などで正常に動作します。innerHTMLの前にjavascriptを終了すると問題なく動作しますが、単一のdiv (animation_image 内) を 2 番目の箇条書きの方法で削除すると、ロックされて回復しません。
私は何かを忘れたと確信していますが、私はATMを完全におかしくしています。前もって感謝します。
更新: これはサンプル XML に沿った JavaScript へのリンクです ( http://pastebin.com/m5b426a67 )
javascript - 要素とその親のオブジェクトとテキスト インデックスによるオフセットを見つけるために使用できるコードはありますか?
つまり、次の HTML コードを例にとると、空白は無視されます。
pNode.innerHTML 内に pNode オブジェクトと "span text" の "a" のインデックスがあり、全体として pNode.innerHTML="paragraph-text<span>span text<i>it</i" であるため、ここでは 23 です。 ></span>」の場合、open span タグもカウントする必要があります。
「spanElement and 2」の期待される要素とオフセットを取得できるように、transform(pElement, 23) のように使用できる既存のライブラリはありますか?
事前に感謝します。よろしく、
スティーブ
extjs - dom.innerHTML の代わりに Ext の update() を使用した質問
Ext 要素の dom の innerHTML を直接更新するのではなく、Extjs の update() メソッドを使用するパフォーマンス、信頼性、ベスト プラクティスの方法について質問があります。
次の 2 つのステートメントを検討してください。
と
スクリプトを作成する必要はありません。ブラウザの癖を考慮に入れてeval()
いると確信しています。update()
また、次を使用しているかどうかは誰にもわかりますか?
と同じです
?
ブラウザとプラットフォームの互換性は重要であり、2 つが基本的に同じである場合は、おそらくExt.element.dom.innerHTML
完全に捨てるupdate()
ことが最善の解決策になるでしょう。
よろしくお願いいたします。
ブライアン
javascript - innerHTML を使用して HTML テーブルにセル データを書き込む
以下の最終関数displayLetter(a、b、c、d、e、f、g)をまとめて、変数Test()の配列要素と変数を使用してinnerHTMLのテーブルに書き込むのに問題があります。.length を使用して、必要なセルの数を決定する必要があることはわかっています。W3C はこれまでのところしか理解できません。助けてくれてありがとう!
私のJS:
javascript - JavaScriptを使用したiframeの問題
IFRAME から HTML を取得する方法を知っている人はいますか? 私はいくつかの異なる方法を試しました:
document.getElementById('iframe01').contentDocument.body.innerHTML
、document.frames['iframe01'].document.body.innerHTML
、document.getElementById('iframe01').contentWindow.document.body.innerHTML
、など
しかし、どれも機能しませんでした。
それらが機能しない理由は、iframe のコンテンツに body タグがないためだと思います (XML を読み込んでいます)。iframe のすべてのコンテンツを取得する他の方法はありますか? 私もjQueryにオープンです。
これ:
document.getElementById('iframe01').contentWindow.document.body.innerHTML
IEでは正常に動作しますが、これは:
document.getElementById('iframe01').contentDocument.body.innerHTML
FFには使えません。
javascript - 文字列をJSONからDOM構造に変換する方法はありますか?
問題は:
次の構造(PHPで生成)をJSON経由で文字列として送信します。
サイトに記事のリストがあり、既存の記事を受け取った記事に置き換える必要があります。jQueryを使用して、次のようにします。
basket.shift()
は上記の文字列形式で受け取った記事であり$victim
、既存の記事です。
さて、通常私はします
優れたブラウザ(gecko、webkit)で動作しますが、jQueryには.innerHTML
HTML5要素での使用に関する既知のバグがあります。これについてはここに記載されています。.replaceWith
最終的にはそのメソッドを内部的に使用します。
解決策は、ネイティブのJavascriptとメソッドを使用することです.innerHTML
。このようなものが機能するはずです:
そして、それはそうですが、良いブラウザでのみです。varの.get(0)
アプローチでは問題があります。$fresh
jsコードでローカルに作成されたノードの挿入をシミュレートしました。これはIEで機能します。
それで、文字列をDOMサブツリーに変換する他の方法はありますか?または、replaceWithの問題を解決する他の方法はありますか?
注:私はJavaScriptの第一人者/忍者ではありません:)
さて、もう少し読んだ後、私はなぜが.insertBefore
機能しないのかを見つけたと思います。
jQuery APIが述べているように(http://api.jquery.com/jQuery/#creating-new-elements)、を文字列として渡すと、その複雑さのために<article>
DOM要素も経由で作成されます。.innerHTML
$()
代わりにネイティブのcreateElementを強制的に使用する方法はありますか?パフォーマンスの面で問題があることはわかっていますが、少なくともIEは機能します。