Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.11.2012, 13:57
Интересующийся
Отправить личное сообщение для mrbean11 Посмотреть профиль Найти все сообщения от mrbean11
 
Регистрация: 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 работал нормально?
Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 02.11.2012, 15:03
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 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);
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 02.11.2012, 15:36
Интересующийся
Отправить личное сообщение для mrbean11 Посмотреть профиль Найти все сообщения от mrbean11
 
Регистрация: 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 упорно отказывается открывать ту же страницу, в которой создается.
Ответить с цитированием
  #4 (permalink)  
Старый 02.11.2012, 16:07
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от mrbean11
iframe упорно отказывается открывать ту же страницу, в которой создается.
... а эта страница пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся, которая пытается открыть ту, в которой создаётся ...

надеюсь, вы поняли, о чём я
Ответить с цитированием
  #5 (permalink)  
Старый 02.11.2012, 16:08
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

У меня всё работает, покажите код, целиком
Но iframe всё равно создастся.
__________________
.
Ответить с цитированием
  #6 (permalink)  
Старый 02.11.2012, 18:25
Интересующийся
Отправить личное сообщение для mrbean11 Посмотреть профиль Найти все сообщения от mrbean11
 
Регистрация: 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.
Ответить с цитированием
  #7 (permalink)  
Старый 02.11.2012, 19:06
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от mrbean11
Да, я понял. То, что вы описали произойдет в том случае, когда iframe динамически создается в событии onload (при загрузке) или если он уже прописан в html коде.
разницы нет, когда это произойдёт. есть рекурсивное открытие страницы во фрейме, и похоже, что браузеры это чувствуют.

но дело, мне кажется, не в этом. я помню, что браузеры запрещают скриптам обращаться к файлам на диске.
попробуйте перенести страницу на удалённый хостинг - например, на http://jsbin.com

Последний раз редактировалось melky, 02.11.2012 в 19:09.
Ответить с цитированием
  #8 (permalink)  
Старый 02.11.2012, 19:30
Интересующийся
Отправить личное сообщение для mrbean11 Посмотреть профиль Найти все сообщения от mrbean11
 
Регистрация: 02.11.2012
Сообщений: 10

melky, думаю, локальный файл или удаленный - разницы нет. Я пробовал помещать html-файл на локальном сервере и обращаться к нему как к удаленному, но результат тот же.
Дзен-трансгуманист, да, вы правы, можно изменить строку запроса.
Конечно, это звучит абсурдно, но нужно, чтобы строка запроса оставалась неизменной, т.е. файл всегда был одним и тем же, в данном случае - 1.html
Ответить с цитированием
  #9 (permalink)  
Старый 02.11.2012, 21:23
Интересующийся
Отправить личное сообщение для mrbean11 Посмотреть профиль Найти все сообщения от mrbean11
 
Регистрация: 02.11.2012
Сообщений: 10

Всем спасибо за помощь.
Я нашел решение, хотя и очень извращенное.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие клавиши в IFrame. FireFox. DesignMode. sbudyakov Общие вопросы Javascript 6 11.10.2012 02:28
Динамическое создание функции FINoM Общие вопросы Javascript 15 19.05.2012 15:15
Динамическое создание Iframe Арсений Элементы интерфейса 12 19.05.2010 15:03
Динамическое создание script src RaiDeR Общие вопросы Javascript 11 22.04.2009 17:04
Повторное создание iframe Smoke Events/DOM/Window 7 07.02.2009 15:14