2017-06-06 140 views
1

我是JavaScript新手,我無法理解爲什麼我的html沒有改變?不能更改span類的InnerHTML?

我有一個Iframe,我正在嘗試更改Iframe在DOM中創建的span類的.innerHTML。

在DOM結構,該類稱爲<span class="weather-location">China</span>

我只是想通過改變它的innerHTML臺灣,而不是訪問此。

這裏是我的代碼:

<html> 
<head> 
<title>test</title> 
</head> 
<body onload="myFunction()"> 

<iframe class="weather" width="100%" height="600px" frameBorder="0" 
src="(this is my iframe src code)></iframe> 

<script type="text/javascript"> 
    function myFunction() { 
     document.getElementsByClassName("weather-location")[0].innerHTML = "Taiwan"; 
    } 
</script> 
</body> 
</html> 

當我在控制檯日誌測試它,它會彈出一個weather-location作爲[]但什麼也奇怪的是,當我使用選擇工具懸停在該weather-location類回去重新輸入控制檯中的代碼,它會改變我想要的類嗎?

另外,我不知道如果這有助於但是當它在Chrome中顯示爲[]一點我框彈出說:「下面的值只是評價現在」。

+1

見https://stackoverflow.com/ questions/478078/access-a-form-that-in-an-iframe - 一個框架有它自己的'document'。 –

+0

想象一下。我通過iframe將整個頁面調入一些銀行頁面。比我去周圍,並改變該iframe內的元素:)只是想象。有趣的是,如果你有* API *訪問該iframe或者它實際上來自你自己的域名,這是可行的... –

+0

你需要在框架內部有腳本。 –

回答

2

如果iframe在的其他域中,則無法更改iframe的innerHTML。

https://developer.mozilla.org/en/docs/Web/HTML/Element/iframe

這種iframe的是像一個窗口,你無法控制的另一個網頁。

如果是在同一個域你可以使用類似

var ifr = document.getElementById(yourIframeId); 
var ifrDoc = ifr.contentDocument || ifr.contentWindow.document; 
var theForm = ifrDoc.getElementById(yourFormId); 

SO問題:accessing a form that is in an iframe

感謝:@le_m