JQuery

2009-04-14 18 views
16

का उपयोग कर किसी इफ्रेम का वर्तमान स्रोत प्राप्त करना मुझे जब भी कोई उपयोगकर्ता किसी ऐसे डोमेन से नहीं है, तो किसी उपयोगकर्ता पर किसी पृष्ठ पर किसी लिंक पर क्लिक करने पर मुझे अधिसूचित होने की आवश्यकता होती है। मुझे एक्सएसएस प्रतिबंधों के बारे में पता है, हालांकि मुझे यह जानने की ज़रूरत है कि वर्तमान पृष्ठ इफ्रेम में पेश किया जा रहा है। Xss नियमों का उल्लंघन किए बिना ऐसा करने का कोई तरीका है?JQuery

उत्तर

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

+3

हां, यह करता है। मुझे विश्वास नहीं है कि नियमों का उल्लंघन किए बिना आपको जो करना है, वह करने का एक तरीका है। – joshuapoehls

+2

फ़ायरबग में फ़ायरफ़ॉक्स में मुझे सभी दस्तावेज मिलते हैं। फ्रेम – OZZIE

32

आइफ्रेम स्थान jQuery का उपयोग कर पाने के लिए:

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

यह मेरे लिए काम नहीं करता है – knocte

+6

यह केवल एक ही डोमेन के मामले में काम करता है - xss सुरक्षा विभिन्न डोमेन के लिए इसे रोकती है – Alvin

+0

नोट, अगर जेएस * iframe के अंदर * चल रहा है, अगर आईफ़्रेम का चयन करना काम नहीं करेगा, लेकिन इसे "$ ('iframe', window.parent.document)" का चयन करना है। (फिर भी वही डोमेन मानते हैं।) – neminem

4

आप वेनिला js साथ यह आसानी से कर सकते हैं।

  • क्वेरी विशिष्ट नाम, आईडी, वर्ग या जो कुछ भी
  • साथ एक तत्व के लिए दस्तावेज है कि तत्व

    //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>