0

iframe を含む HTML ページがあり、iframe 内のリンクに関数を記述しようとしています。関数は HTML ページに変更を加えます...

次のスクリプトは、iframe でクリックされた最初のリンクで機能します。しかし、iframe が "src" を変更すると、関数は機能しなくなります。

iframe の src が変更されても動作させるにはどうすればよいですか?

(すべてのページは同じドメインにあります)

<script type="text/javascript">
  $("iframe").contents().find("a").click(function() {
    alert('Load was performed.');
  });
</script>
4

2 に答える 2

1

.live() メソッドを使用しようとすると、イベントが既存の要素と将来の要素にバインドされます。src を変更するときは、クリック イベントを新しいリンクに再度バインドする必要があります。

.live() メソッドが iframe で機能するかどうかはわかりませんが、これを試すことができます:

  $("iframe").contents().find("a").live('click',function() {
    alert('Load was performed.');
  });

私の壊れた英語でごめんなさい!

それが機能するかどうかはわかりません(申し訳ありませんが、今テストする場所がありません)が、iframeのonLoadイベントで関数をバインドしようとするとどうなりますか(W3Cがiframeにないと言ったとしても)すべてのブラウザーでサポートされているようです):

    <iframe src="/my_contents" onLoad="onload_function()"></iframe>
    ...
   <script>
        onload_function(){
          $(function(){
            $("iframe").contents().find("a").click(function() {
              alert('Load was performed.');
            });
          });
        }
    </script>
于 2010-12-07T15:32:58.777 に答える
0

ドメインと同じ場合は機能するはずです。そうでない場合は、いくつかのオリジンポリシーのために、クロスドメインとして機能しません。

于 2010-12-07T15:21:36.533 に答える