02.11.2012, 13:57
|
Интересующийся
|
|
Регистрация: 02.11.2012
Сообщений: 10
|
|
Динамическое создание iframe в Firefox
Здравствуйте.
Я создал страницу 1.html
В ней с помощью javascript я создаю iframe со значением src=1.html , т.е. с этой же страницей. Вот так:
var iframe = document.createElement('IFRAME')
iframe.name = 'iname'
iframe.setAttribute('src', document.location.href)
document.body.appendChild(iframe)
Этот код находится в функции, которая вызывается при нажатии на кнопку; не автоматически при загрузки страницы.
Проблема следующая: в некоторых браузерах этот iframe не работает, т.е. не отображается его содержимое. Только в браузере Opera все работает как надо.
Что мне сделать, чтобы в браузерах IE и Firefox iframe работал нормально?
Спасибо.
|
|
02.11.2012, 15:03
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
var iframe = document.createElement('iframe');
iframe.name = 'iname';
iframe.src = document.location.href;
iframe.style.width = "100px";
iframe.style.height = "100px";
document.body.appendChild(iframe);
__________________
.
|
|
02.11.2012, 15:36
|
Интересующийся
|
|
Регистрация: 02.11.2012
Сообщений: 10
|
|
Сообщение от Skipp
|
var iframe = document.createElement('iframe');
iframe.name = 'iname';
iframe.src = document.location.href;
iframe.style.width = "100px";
iframe.style.height = "100px";
document.body.appendChild(iframe);
|
Нет, так не работает.
iframe упорно отказывается открывать ту же страницу, в которой создается.
|
|
02.11.2012, 16:07
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от mrbean11
|
iframe упорно отказывается открывать ту же страницу, в которой создается.
|
... а эта страница пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся ...
надеюсь, вы поняли, о чём я
|
|
02.11.2012, 16:08
|
|
.
|
|
Регистрация: 30.03.2010
Сообщений: 1,813
|
|
У меня всё работает, покажите код, целиком
Но iframe всё равно создастся.
__________________
.
|
|
02.11.2012, 18:25
|
Интересующийся
|
|
Регистрация: 02.11.2012
Сообщений: 10
|
|
Сообщение от melky
|
надеюсь, вы поняли, о чём я
|
Да, я понял. То, что вы описали произойдет в том случае, когда iframe динамически создается в событии onload (при загрузке) или если он уже прописан в html коде.
Я имею в виду тот случай, когда iframe создается после нажатия на кнопку, например так:
Текст файла 1.html
<html>
<head>
<title>Page</title>
</head>
<body>
<input id="b1" type="button" value="Create iframe" onclick="obj.CreateIframe();"></input>
<script type="text/javascript">
var obj = {
CreateIframe : function () {
var iframe = document.createElement('IFRAME')
iframe.name = 'iname'
iframe.setAttribute('src', document.location.href) // или iframe.src = document.location.href
document.body.appendChild(iframe)
}
}
</script>
</body>
</html>
Дзен-трансгуманист, думаю, ваш вариант - не совсем то, что нужно
Последний раз редактировалось mrbean11, 02.11.2012 в 18:29.
|
|
02.11.2012, 19:06
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от mrbean11
|
Да, я понял. То, что вы описали произойдет в том случае, когда iframe динамически создается в событии onload (при загрузке) или если он уже прописан в html коде.
|
разницы нет, когда это произойдёт. есть рекурсивное открытие страницы во фрейме, и похоже, что браузеры это чувствуют.
но дело, мне кажется, не в этом. я помню, что браузеры запрещают скриптам обращаться к файлам на диске.
попробуйте перенести страницу на удалённый хостинг - например, на http://jsbin.com
Последний раз редактировалось melky, 02.11.2012 в 19:09.
|
|
02.11.2012, 19:30
|
Интересующийся
|
|
Регистрация: 02.11.2012
Сообщений: 10
|
|
melky, думаю, локальный файл или удаленный - разницы нет. Я пробовал помещать html-файл на локальном сервере и обращаться к нему как к удаленному, но результат тот же.
Дзен-трансгуманист, да, вы правы, можно изменить строку запроса.
Конечно, это звучит абсурдно, но нужно, чтобы строка запроса оставалась неизменной, т.е. файл всегда был одним и тем же, в данном случае - 1.html
|
|
02.11.2012, 21:23
|
Интересующийся
|
|
Регистрация: 02.11.2012
Сообщений: 10
|
|
Всем спасибо за помощь.
Я нашел решение, хотя и очень извращенное.
|
|
|
|