iframeにマウスイベントを追加

10735 ワード

1、iframeタグについて
iframe要素を使用すると、別のドキュメントを含むインラインフレームワーク(行インラインフレームワーク)が作成されます.iframeラベルを使用して、あるページに別のページを埋め込むことができます.iframeのsrcを別のページへのパスとして指定することで、この要件を達成します.しかしiframeでは、マウスのmousemoveイベントなどのイベントはサポートされていません.この需要に対して、私たちは別の方法で達成するしかありません.
2、解決方法
2つのページがあります.1つはindex.htmlページで、もう1つはpage.htmlです.index.htmlページでiframeを介してpage.htmlを導入する必要があります.さらにiframeの領域にマウスのmousemoveイベントを追加する必要があります.
考え方は以下の通りである.
a、iframeを一つのdiv(div 1)に入れて、このdivのindex-z値を1に設定します.
b、ページにdiv(div 2)を追加し、このdivをページ全体を上書きし、透明にしてindex-z値を1より大きく設定します.
これにより、2番目のdivのマウスイベントを傍受するだけで、マウスイベントがトリガーする関数で処理できます.
マウスイベントがトリガーされるとdiv 2のdisplayをblockに設定し、関数処理が完了するとdiv 2のdisplayをnoneに設定します.このように基本的に需要を満たす.
3、関連コード
index.htmlコード:
 1   <html>

 2   <head>

 3    <title>Demo</title>  

 4     <meta http-equiv="Content-Type" content="text/html; charset=gbk" />

 5    <script type="text/javascript" src="script.js"></script> 

 6   </head>

 7     <script type="text/javascript">

 8    var containerdiv;

 9   function div_mousemove(){

10       containerdiv = document.getElementById("container");

11       containerdiv.style.display = "none";

12       alert("onmousemove");

13       containerdiv.style.display = "block";

14   }

15    </script>

16   <body >   

17        <div id="container" onmousemove="div_mousemove();"  style="background:rgba(250,0,0,0);width:100%;height:100%;position:absolute;"></div>

18     <div id="ar"   style="background-color: green;index-z:1" >  

19            <iframe id="showwin"  frameborder="0"  style="background-color: red"  scrolling="no" width="100%" height="100%" ></iframe> 

20    </div>  

21   </body>

22   </html>   

page.htmlコード:
 1 <html>

 2  <head>

 3   <title> New Document </title>

 4   <meta name="Generator" content="EditPlus">

 5   <meta name="Author" content="">

 6   <meta name="Keywords" content="">

 7   <meta name="Description" content="">

 8  </head>

 9  <body>

10     this is iframe area

11  </body>

12 </html>

同じマウスの他のイベントは、このような方法で実現できます.