2009-04-14 93 views
16

只要用戶單擊不在同一個域中的iframe中的頁面上的鏈接,就需要得到通知。我知道xss限制,但是我需要知道的是在iframe中提供的當前頁面。有沒有辦法做到這一點,而不違反xss規則?使用JQuery獲取Iframe的當前src

回答

8

如果不是跨網站腳本限制,這應該工作。不幸的是,我不知道如何在不違反這些限制的情況下獲取網址。

<html> 
    <head> 
     <script type="text/javascript"> 
      function GetIFrameUrl() 
      { 
       alert('url = ' + document.frames['frame1'].location.href); 
      } 
     </script> 
    </head> 
    <body> 
     <a href="#" onclick="GetIFrameUrl();">Find the iFrame URL</a> 
     <iframe name="frame1" src="http://www.google.com" width="100%" height="400"></iframe> 
    </body> 
</html> 
+0

這是否viloate XSS規則是什麼? – Micah 2009-04-14 18:25:14

+3

是的,它的確如此。我不相信有一種方法可以在不違反規則的情況下做你所需要的。 – joshuapoehls 2009-04-15 05:40:49

32

要獲得使用jQuery的iframe的位置:

alert($('iframeId').contents().get(0).location.href); 
4

您可以輕鬆地用香草JS做到這一點。

  • 查詢與特定的名稱,ID類或任何
  • 一個元素的文檔獲取屬性源爲元素

    //Get by Id 
    var frame_src = document.getElementById('myIframe').src 
    //Get by tag name - get the first 
    var frame_src = document.getElementsByName('frmExternal')[0].src 
    //Alert 
    alert(frame_src) 
    
0
<script type="text/javascript"> // if window open in iframe then redirect to main site 
     if(window.top.location != window.self.location) 
     { 
      alert(window.self.location); 
      // top.window.location.href = window.self.location; 
     } 
    </script>