我是JavaScript的新手,我无法理解为什么我的HTML没有改变?
我有一个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中显示为[]
时,会弹出一个小框,说“刚才评估了下面的值”。
答案 0 :(得分:2)
如果它在另一个域上,则无法更改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