簡體   English   中英

獲取相對於窗口的IFRAME位置

[英]Get IFRAME position relative to the window

我在iframe中運行javascript代碼,該代碼是從父窗口以外的域提供的。 由於安全問題(跨域),我無法輕易檢測到窗口內框架的位置。

但是,我發現如果我將一個事件附加到框架中的window.mousemove,我可以得到窗口的ScreenX / Y和事件的ScreenX / Y,這讓我很好地了解了瀏覽器窗口左上角的偏移量。對我來說足夠接近 - 我只想檢測視圖中框架的數量和數量。

所以我認為我可以在iframe中實用地激活window.mousemove(),但是不會填充event.ScreenX / Y.

所以我的問題是:

1)當幀在不同的域上時,如何從窗口獲得iframe的絕對偏移量2)或者 - 同樣好 - 我如何實際觸發已填充ScreenX / Y的事件?

這樣的東西對我有用,雖然我不確定這是不是你要求的。 您可能仍需要考慮以下兩件事:

  1. 從瀏覽器滾動偏移量,但我認為您可以使用此值。
  2. 瀏覽器標題差異,我當前獲得的值不會扣除瀏覽器標題使用的高度,也不會扣除左側的任何填充。 有幾種方法可以做到這一點。

    a)創建一個瀏覽器列表,並自動扣除關於標頭大小的最佳猜測。 b)使用innerHeight進行一些數學計算,但是你仍然需要弄清楚窗口狀態欄(或unix或max)對瀏覽器頭大小的影響有多大。

無論如何這里是我使用的代碼:

<html>
    <head>
        <title>iframe title</title>
        <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type="text/javascript">
        jQuery(document).ready(function(){
           $(document).mousemove(function(e){
                var x = e.screenX - e.pageX - window.screenX;
                var y = e.screenY - e.pageY - window.screenY;
              $('#status').html(x +', ' + y );
           }); 
        })
        </script>       
    </head>
    <body id="doc">
        <h2 id="status">0, 0</h2>
    </body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM