Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.01.2009, 14:26
Kapriz
 
Сообщений: n/a

Как поймать родительское окно.
Как поймать родительское окошко из дочернего? А именно, надо найти textarea по id в родительском окошке, и вставить туда данные.

Сейчас сделал скрипт, типа текстового редактора. Кнопки находятся в том-же документе, где и textarea. Работает.

Делаю функцию загрузки и вставки файлов. При нажатии на кнопку в редакторе вылезает окошко, которое загружает файлы в папку пользователя и всячески администрирует их. Вопрос - как сделать вставку ссылки на файл в родительский, основной документ?

Вот основной скрипт:
Код:
function tagit(txtstart,txtend) {
	document.getElementById('editor_field').focus();
	if (document.selection) {
			// ie & may be opera 8     
			var rng = document.selection.createRange();
			if (rng.text) {
				document.selection.createRange().text = txtstart + rng.text + txtend;
				} else {
				document.getElementById('editor_field').value += txtstart  + txtend;
				}
			document.getElementById('editor_field').focus();
			}
	else if (document.getElementById('editor_field').selectionStart || document.getElementById('editor_field').selectionStart == '0') {
	// mozilla: intellegent bcodes support     
	var selStart = document.getElementById('editor_field').selectionStart;
	var selEnd = document.getElementById('editor_field').selectionEnd; 
	var s = document.getElementById('editor_field').value;     
	s = s.substring(0, selStart) + txtstart + s.substring(selStart, selEnd) + txtend + s.substring(selEnd, s.length);
		document.getElementById('editor_field').value = s; 
	if (selEnd != selStart) {
		document.getElementById('editor_field').selectionStart = selStart;
		document.getElementById('editor_field').selectionEnd = selEnd + txtstart.length + txtend.length;
		} else {
		document.getElementById('editor_field').selectionStart = selStart + txtstart.length;
		document.getElementById('editor_field').selectionEnd = document.getElementById('editor_field').selectionStart;
		}
	} else {
	// other browsers     
	document.getElementById('editor_field').value += txtstart + txtend;   
	}
	}
Ответить с цитированием
  #2 (permalink)  
Старый 05.01.2009, 14:37
Kapriz
 
Сообщений: n/a

Нашел
Нашел здесь http://www.webreference.com/js/tutorial1/opener.html

Финальная версия скрипта, работает:
Код:
function add_tag(txtstart,txtend) {
	window.opener.document.getElementById('editor_field').focus();
	if (window.opener.document.selection) {
			// ie & may be opera 8     
			var rng = window.opener.document.selection.createRange();
			if (rng.text) {
				window.opener.document.selection.createRange().text = txtstart + rng.text + txtend;
				} else {
				window.opener.document.getElementById('editor_field').value += txtstart  + txtend;
				}
			window.opener.document.getElementById('editor_field').focus();
			}
	else if (window.opener.document.getElementById('editor_field').selectionStart || window.opener.document.getElementById('editor_field').selectionStart == '0') {
	// mozilla: intellegent bcodes support     
	var selStart = window.opener.document.getElementById('editor_field').selectionStart;
	var selEnd = window.opener.document.getElementById('editor_field').selectionEnd; 
	var s = window.opener.document.getElementById('editor_field').value;     
	s = s.substring(0, selStart) + txtstart + s.substring(selStart, selEnd) + txtend + s.substring(selEnd, s.length);
		window.opener.document.getElementById('editor_field').value = s; 
	if (selEnd != selStart) {
		window.opener.document.getElementById('editor_field').selectionStart = selStart;
		window.opener.document.getElementById('editor_field').selectionEnd = selEnd + txtstart.length + txtend.length;
		} else {
		window.opener.document.getElementById('editor_field').selectionStart = selStart + txtstart.length;
		window.opener.document.getElementById('editor_field').selectionEnd = window.opener.document.getElementById('editor_field').selectionStart;
		}
	} else {
	// other browsers     
	window.opener.document.getElementById('editor_field').value += txtstart + txtend;   
	}
	}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать справочное окно? Vlaimir Events/DOM/Window 13 05.01.2009 14:06
Как узнать свернуто окно браузера или нет. bar-boss Events/DOM/Window 3 25.09.2008 16:09
Как создать окно, определенной ширины и высоты AnIva Events/DOM/Window 2 17.09.2008 09:17
как при открытии окна закрыть предыдущее Евдокимова Events/DOM/Window 3 16.09.2008 17:12
форма как в ExtJS 2 magistr_bender Общие вопросы Javascript 0 11.09.2008 16:01