2010-06-29 51 views
1

在此示例中,警報爲空; 我想讀取iFrame的位置,我爲此使用object.src,但它只有在設置其src屬性時才起作用。但我使用window.open方法設置了iFrame的位置,在這種情況下它不起作用。我做的事 ?javascript中的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> 

回答

1

相同的安全問題,如果你通過它應該在同一個域中

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

而不是使用window.open()的,你爲什麼不只是使用:

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

現在你可以使用的getElementById()的位置

你可以做到這一點的訪問location.href屬性。當然,出於安全原因,瀏覽器不會讓你訪問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); 
+0

我知道它的工作,有問題我也寫,如果我設置其src屬性則其作品把手訪問,但我想知道如何使用open方法讀取位置的方式? – 2010-06-29 05:38:05

+0

我明白了。請參閱編輯。 – quantumSoup 2010-06-29 06:10:47

+0

哇!一直在尋找如何訪問該位置!許多人提到了src屬性,但我沒有設置該屬性。這是我的情況正確的解決方案! – 2012-10-25 08:35:35