Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.12.2013, 23:36
Новичок на форуме
Отправить личное сообщение для Whinterstorm Посмотреть профиль Найти все сообщения от Whinterstorm
 
Регистрация: 07.12.2013
Сообщений: 3

Работа с динамически созданым Iframe
Уважаемое сообщество, окажите помощь!
Условия:
  1. Необходимо создать кнопку, по нажатию на которую, появится iframe, внутри которого будет загружен родительский документ.
  2. Кнопка и её cобытие тоже создана динамически через JS.
Суть проблемы:
Iframe остаётся "пустым".
Пробовал записать адрес element.src = 'имя исходника' - не пашет
Делаю копию исходного файла в той же папке с другим именем -всё отлично!! (но категорически нужен только один файл - исходный).
Через DOM и innerHTML пробовал вставить в тело только статику - всё равно глухо.
Помогите советом добрые люди!!!
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2013, 01:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Whinterstorm
появится iframe, внутри которого будет загружен родительский документ.
Думается мне что браузеры не допустят этого, дабы избежать рекурсии.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2013, 14:57
Новичок на форуме
Отправить личное сообщение для Whinterstorm Посмотреть профиль Найти все сообщения от Whinterstorm
 
Регистрация: 07.12.2013
Сообщений: 3

Конфликта нет, так как создание IFRAME осуществляется по событию(нажатие кнопки).
Решение оказалось банальным!:
var all_buttons = document.getElementsByTagName('input');

window.onload = function(class_name, b_value){
	//default settings
	class_name = class_name ? class_name : 't1'; 
	b_value = b_value ? b_value : 'Task ' + (all_buttons.length+1);
	button = document.createElement('input');
	button.type = 'button';
	button.value = b_value;
	button.id = 'button_'+ all_buttons.length;
	button.onclick = function (){
		get_iframe();
	}
}

function get_iframe(){
	var page_code = document.documentElement.innerHTML;
	page_code = page_code.substring(0,page_code.indexOf('<input')) + '</body></html>';

	var iframe = document.createElement("iframe");
	iframe.id = 'iframe';
	iframe.style.width = "400px";
	iframe.style.height = "400px";

	document.body.insertBefore(iframe,document.getElementsByTagName('input')[0]);
	iframe.onload = function (){
		var i_body = iframe.contentWindow.document.getElementsByTagName('*')[0];
		i_body.innerHTML = page_code;
	}
}

Последний раз редактировалось Whinterstorm, 08.12.2013 в 14:58. Причина: лишние теги
Ответить с цитированием
  #4 (permalink)  
Старый 08.12.2013, 14:59
Новичок на форуме
Отправить личное сообщение для Whinterstorm Посмотреть профиль Найти все сообщения от Whinterstorm
 
Регистрация: 07.12.2013
Сообщений: 3

Спасибо за оперативную поддержку!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
немогу "достучаться" до элементов динамически создаваемого iframe Kvark Events/DOM/Window 3 23.08.2013 12:00
работа с iframe Zim_one Общие вопросы Javascript 1 21.11.2012 16:35
Работа с iFrame faforty Общие вопросы Javascript 1 10.04.2012 07:12
iframe как правильно динамически встаить с помощью js syegorius Events/DOM/Window 7 05.01.2012 08:24
jQuery. Работа с динамически создаваемым списком. nule jQuery 6 27.12.2011 14:56