无法更改span类的InnerHTML?

时间:2017-06-06 23:55:02

标签: javascript console.log

我是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中显示为[]时,会弹出一个小框,说“刚才评估了下面的值”。

1 个答案:

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