0

複数の iframe を含むページがあります。これらの iframe 内のページは、数字 (すべて同じライブラリを使用) と日付で更新され続け、多くの場合、他の iframe 内の div と同じ ID を持つ div が含まれます。

これらの数値の中には、見栄えを良くするためにカンマを追加する関数を使用するものもありますが、日付を保持するように設計されているため、その関数を呼び出さないものもあります。更新する div は、document.getElementByID で選択されます。

私の問題は時々 (めったにありませんが、ページを 1 日開いたままにしておくと、いくつかのインスタンスが表示されることがよくあります)、日付にコンマが追加されていることです (もちろん、日付の書式設定が台無しになります)。その iframe で実行されているページ スクリプトは addCommas 関数を呼び出しません。

私の推測では、日付が含まれる div は別の iframe と同じ ID を持つ可能性があるため、それらがまったく同時に実行されると、エンジンが 2 つを混同する可能性があります。それはもっともらしく聞こえますか?

異なるページにある実行中のスクリプトが互いに完全に独立していることを望んでいました (両方が documentV 内の iframe に含まれていても、documentX.divIDA は documentY.divIDA とは完全に分離されます) が、そうではありませんか?

ページの 1 つを単独で開くテストをセットアップしました。別のページからの干渉が原因であることを確認するために、週末はそのままにしておきますが、とにかく専門家に尋ねることにしました。

4

1 に答える 1

1

iframe にロードされたコンテンツは、それをロードするページから完全に独立しています (それらの間で通信するための明示的なコードがない限り... しかし、それを書いて知っているでしょう)。ある iframe に対して実行されるスクリプトが別の iframe のコンテンツを変更する可能性はありません。

ブラウザーの JavaScript デバッガーを開き、ページを読み込み、日付 iframe の 1 つで実行されているスクリプトにブレークポイントを設定し、addComma()関数がいつ呼び出されるかを確認します。

于 2012-07-20T09:49:08.843 に答える