2

親ウィンドウ内にiframeがあり、iframesrcと親の両方が同じドメインにあります。iframeドキュメントにJavascriptを含まないようにするために、親ウィンドウの関数を使用して、iframe内でマウスの位置を取得できるようにしたいと思います。

これまでの私の試みには、次のものが含まれています。

<iframe id="iframe1" src="test.html" style="position:relative; width:500px; height:500px"></iframe>
<div id="result" style="border:1px solid black"></div>

<script>
$(document).bind("mousemove", function(e){
    $("#result").html("x:" + e.pageX + ", y:" + e.pageY);
});
    
$("#iframe1").contents().find(document).bind("mousemove", function(e){
$("#result", window.parent.document).html("x:" + e.pageX + ", y:" + e.pageY);
});
</script>

最初のmousemoveイベントは結果divにマウスの位置を正しく表示しますが、2番目のイベント(iframeドキュメントにバインドしようとしていました)は応答しません。</ p>

4

1 に答える 1

3

これは、権限の部分を除いて機能します。

JS:

$(document).bind("mousemove", function(e) {
    $("#result").html("x:" + e.pageX + ", y:" + e.pageY);
});

$($("#iframe1").contents()[0], window).bind("mousemove", function(e) {
    $("#result").html("x:" + (e.pageX) + ", y:" + e.pageY);
});

問題はにありました.find()。iframe にはドキュメントしか含まれていないはずなので、コンテンツによって返された配列の最初のインデックスを使用しました。

より良い例で更新されました。

于 2012-10-14T16:49:11.577 に答える