4

バインディングを JQuery で動作させるのに問題があります。

<iframe id="wufooFormz7x3k1" height="281" allowtransparency="true" frameborder="0" scrolling="no" style="width:100%;border:none" src="http://foo111.com"></iframe>

<script>
jQuery('#wufooFormz7x3k1').ready(function()
{
  jQuery('#wufooFormz7x3k1').bind('onload', alert('hi1'));
  jQuery('#wufooFormz7x3k1').bind('onload', function() { alert('hi2') });
});
</script>

最初のバインドはアラートを生成しますが、その後このエラーをスローし、その後の iframe のロードに対してアラートをトリガーしません (これは私が検出しようとしているものです)。

Uncaught TypeError: Cannot read property 'handler' of undefined and won't be triggered for subsequent onloads.

2 番目のバインドはまったくトリガーされません。

理想的には、iframe の onload に対してバインドして、iframe がリロードされるたびにアラートを生成できるようにすることです。

4

1 に答える 1

10

loadイベントを使用します。

jQuery('#wufooFormz7x3k1').bind('load', function() { alert('hi2') });

アラートを実行し、アラートの戻り値を関数として渡しているため、最初の試行ではアラートが発生しますが、その戻り値は関数ではないため、エラーが発生します。

また、以下は必要ではなく、あなたが思っていることを実際には行いません。

jQuery('#wufooFormz7x3k1').ready(function()

それはを無視し、代わりに'#wufooFormz7x3k1'使用しdocumentます。スクリプトはiframeタグの直後にあるため、iframeの準備ができているため、省略できます。

于 2012-06-22T19:11:53.697 に答える