Почему использование document.write для создания iframe «отменяет» весь оставшийся Javascript? - PullRequest
1 голос
/ 10 июля 2010

Это происходит во всех браузерах, поэтому должна быть причина.

Пример:

<html>
<body>
<script>var a="support/";
var aa='<iframe src="http://google.com/' + a + '" />'; 
document.write(aa)</script> 
<script>alert('test')</script>
</body>
</html>

Код после записи iframe (в данном случае alert ('test')) не выполняется. Почему?

Ответы [ 4 ]

9 голосов
/ 10 июля 2010

Ваш HTML-код, который вы пишете в документе, является недействительным, и браузер не может интерпретировать остальную часть документа, включая оставшиеся теги <script>.

Вы пишете <iframe src="http://google.com/support/. Добавьте "></iframe> и все в порядке.

Однако более чистый подход заключается в том, чтобы вообще не использовать document.write (при условии, что у вас есть некоторый элемент HTML с id = "container" для хранения iframe):

var iframe = document.createElement('iframe');
iframe.setAttribute("src", "http://google.com/support/");
document.getElementById("container").appendChild(iframe);
9 голосов
/ 10 июля 2010

Поскольку вы пишете неработающий HTML в документ - в теге iframe нет>.

2 голосов
/ 10 июля 2010

Вам нужно закрыть свои цитаты и iframe.Это работает:

<html>
<body>
<script>var a="support/";
var aa='<iframe src="http://google.com/' + a + '" />';
document.write(aa)</script> 
<script>alert('test')</script>
</body>
</html>
0 голосов
/ 18 августа 2014

Этот код в порядке и работает нормально. Вы можете проверить это на JSFiddle Live DEMO . Остальное вы можете редактировать с вашими данными ..

<script type="text/javascript">
var write_variable="p/about.html";
var write_iframe='<iframe src="http://www.exeideas.com/' + write_variable + '" />';
document.write(write_iframe);
</script>

Или вы можете проверить это онлайн через Редактор HTML и Previewer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...