Не удается изменить InnerHTML класса span?

1

Я новичок в 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, я немного всплываю, говоря, что "значение ниже было оценено сейчас".

Теги:
console.log

1 ответ

2
Лучший ответ

Вы не можете изменить 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню