2012-03-29 3 views
0

私は、コンテンツがオーバーフローしたページ上のすべての定義済み要素にスクロールバーを追加することをシームレスに処理するJavascriptスクロールクラスを使用しています。クライアントは最近、これらの要素の1つにiframeが含まれているので、インタラクティブなコンテンツを簡単にこの領域に追加することができます。 (私はiframeを知っていることは分かっていますが、私はこの仕事の下請けだと思います。)幸いにも、iFramのコンテンツは同じドメインから取得されていますので、コンテンツがロードされるとiframeのサイズを変更できます次に、Javascriptのスクロールバーを起動します。最後に、Chromeで美しく動作します。Iframeのマウスイベントの盗難

エクスプローラとFirefoxでは、iframeがiframeの上にくるとすぐiframeがマウスイベントを盗んでいるようです。そのため、マウスホイールイベントはもはや機能しません。スクロールハンドルをドラッグしてスクロールしたり、スクロールトラックの任意の場所をクリックすることはできますが、マウスホイールを使用すると何も行われません。それはイベントを起こさない。

他の人にも同様の問題がありましたが、回避策が見つかっていないことがわかりました。誰でも何か提案がありますか?ここで

は良い測定のためのスクロールクラスです:http://hastebin.com/xisidogiju.coffee

は私が得ることができる任意の助けに感謝します!

+0

nice link、lol。ペーストビンの腐敗が最良です。 – RaisingAgent

答えて

1

マウスイベントはウィンドウに関連付けられ、iframeはウィンドウです。その奇跡はあなたが言うようにWebkitブラウザでうまくいきます。

マウスが移動すると、親ウィンドウとiframeの間でeventListener、おそらくeventHandlerを渡す必要があります。

iframe間でオブジェクトを渡す場合の参考資料:http://www.dyn-web.com/tutorials/iframes/refs.php

0

私はこの問題を克服することができます。下記のjsfiddleに記載されている解決策を確認することができます。ここで

http://jsfiddle.net/6nnMV/358/

、私は、マウスのスクロールを聞くためにイベントを作成したとiframeにイベントをバインドされています。

あなたは、あなたがアクセスしているのiframeが同じドメイン内にある場合にのみ動作します

$(element).scrollTop($(element).scrollTop+(number of pixels)); 

ようにscrollTopスプライトプロパティを使用して、親ウィンドウまたは要素をスクロールすることができます。

関連する問題