【问题标题】:iframe location in javascriptjavascript中的iframe位置
【发布时间】:2010-06-29 05:19:03
【问题描述】:

在这个例子中,alert 是空白的; 我想读取 iFrame 的位置,我为此使用了 object.src,但它只有在我设置它的 src 属性时才有效。但是我使用 window.open 方法设置了 iFrame 的位置,在这种情况下它不起作用。我要做什么?

<body>    
<iframe id="location" name="address" style="width:700px; height:700px;">  
</iframe>    
<script type="text/javascript" language="javascript">  
    window.open("http://www.google.com","address");  
    function clickMe()  
    {  
        var src = document.getElementBy Id("location").src;  
        alert(src);  
    }  
</script>  
<input type="button" onclick="clickMe()" value="click Me"/>  
</body>

【问题讨论】:

    标签: javascript dom iframe location src


    【解决方案1】:

    不使用window.open(),你为什么不直接使用:

    document.getElementById("location").src = "http://www.google.com";
    

    现在您可以使用 getElementById() 获取其位置

    您可以通过访问 location.href 属性来做到这一点。当然,出于安全原因,如果 iframe 是另一个域,浏览器不会让您访问 iframe 的 DOM。

    var oIframe = document.getElementById("location");
    // for compatibility
    var oDoc = oIframe.contentWindow || oIframe.contentDocument;
    if (oDoc.document) {
        oDoc = oDoc.document;
    }
    alert(oDoc.location.href);
    

    【讨论】:

    • 我知道,如果我设置它的 src 属性然后它的工作原理我也写了,但是我想知道当我们使用 open 方法时如何读取位置的方式?
    • 哇!一直在寻找如何访问该位置!许多其他人提到了 src 属性,但我没有设置该属性。在我的情况下,这是正确的解决方案!
    【解决方案2】:

    如果您通过应该在同一个域中工作的句柄访问,同样的安全问题

    <script>
    var win;
    function load(link) {
      win=window.open(link.href,link.target)
      return win?false:true;
    }
    function tell(winName) {  
      try {
        alert(win.location.href)
        try {
          var handle = window.open('',winName);
          alert(handle.location.href)
        }
        catch(e) {
          alert('oops getting location via window handle:'+e.message)
        }
      }
      catch(e) {
        alert('Ooops getting location:'+e.message)
      }
    }  
    </script>
    
    <iframe src="about:blank" name="if1"></iframe><br/>
    <a href="http://www.google.com" target="if1" onClick="return load(this)">Load foreign link</a><br />
    <a href="showhref.html" target="if1" onClick="return load(this)">Load local link</a><br />
    <a href="#" onClick="return tell('if1')">Tell</a><br />
    

    【讨论】:

      猜你喜欢
      • 2019-03-23
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      相关资源
      最近更新 更多