расположение iframe в javascript - PullRequest
2 голосов
/ 29 июня 2010

В этом примере предупреждение пусто;Я хочу прочитать местоположение iFrame, я использую object.src для этого, но он работает, только если я установил его атрибут src.Но я установил местоположение iFrame с помощью метода window.open, и в этом случае он не работает.Что я делаю?

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

Ответы [ 2 ]

3 голосов
/ 29 июня 2010

Вместо использования window.open (), почему бы вам просто не использовать:

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

Теперь вы можете получить его местоположение с помощью getElementById ()

Вы можете сделать это с помощьюдоступ к атрибуту location.href.Конечно, из соображений безопасности браузеры не позволят вам получить доступ к DOM iframe, если это другой домен.

var oIframe = document.getElementById("location");
// for compatibility
var oDoc = oIframe.contentWindow || oIframe.contentDocument;
if (oDoc.document) {
    oDoc = oDoc.document;
}
alert(oDoc.location.href);
2 голосов
/ 29 июня 2010

Та же проблема безопасности при доступе через дескриптор, который должен работать в том же домене

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