Я новичок в JavaScript, и я не понимаю, почему мой html не меняется?
У меня есть iframe, и я пытаюсь изменить.innerHTML класса span, который Iframe создал в DOM.
В структуре 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, я немного всплываю, говоря, что "значение ниже было оценено сейчас".
Вы не можете изменить innerHTML iframes, если он находится в другом домене.
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 Вопрос: доступ к форме, находящейся в iframe
Кредит: @le_m