Javascript.RU

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

Вернуть элемент по window.opener или что-то...
Доброго времени уважаемые!
В основном окне имеем такой код
<script language="JavaScript" src="scripts.js"></script>


<form method=post name=\"s_add\" id=\"s_add\">
<select name=\"city\" id=\"city\">....
<a href=\"javascript:open_window('other_city.php', '800', '600')\">другой город</a>

В scripts.js:
function open_window(link,w,h)
{
	var features, w, h;
	var top = (screen.height - h)/2, left = (screen.width - w)/2;
	if(top < 0) top = 0;
	if(left < 0) left = 0;
	features = 'top=' + top + ',left=' +left;
	features += ',height=' + h + ',width=' + w + ',menubar=no,location=no,resizable=no,scrollbars=yes,status=1';
	newWin = open(link, 'displayWindow', features);
}

В открываемом по window.open other_city.php
<a href=\"javascript:window.opener.document.s_add.city.options.add(new Option('Екатеринбург (2)','xxxx',true,true));self.close()\">Екатеринбург</a>

т.е. открываем окно, выбираем город которого небыло в выпадающем списке, пытаеемся его добавить в форму на первом скрипте.
С оперой и мозилой все летает на ура, эксплорер никак не хочет работать, на сколько я понимаю потомучто он "не признаёт элементы, созданные в другом окне"..
Как реализовать чтоб везде работало?
Ответить с цитированием
  #2 (permalink)  
Старый 24.11.2010, 14:35
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,244

Сообщение от ded-mazay
потомучто он "не признаёт элементы, созданные в другом окне"..
Все он признаёт... Вопрос только какими методами все это сделано...
Если например, для получения ссылки на элемент использовать

obj=document.getElementById('нужный_ИД')


для создания элементов использовать

o=document.createElement('тег')


для добавления элемента в другой элемент использовать

obj.appendChild(o)


вроде работало всегда и везде...
Ответить с цитированием
  #3 (permalink)  
Старый 24.11.2010, 14:47
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от ded-mazay
new Option
Вот этот вот option создаётся в одном документе, а вставляется в другой. IE не любит такие выкрутасы. Создавайте элемент через
opener.document.createElement('option')
Ответить с цитированием
  #4 (permalink)  
Старый 24.11.2010, 14:52
Новичок на форуме
Отправить личное сообщение для ded-mazay Посмотреть профиль Найти все сообщения от ded-mazay
 
Регистрация: 24.11.2010
Сообщений: 3

Всем спасибо!
Сделал вобщем так:
В scripts.js добавил
function ins_city(city_id,city_name) {
	document.s_add.city.options.add(new Option(city_name,city_id,true,true));
}


Ссылки во всплывающем окне заменил на span:
<span onClick=\"if (window.opener){window.opener.ins_city('xxxx','Екатеринбург (2)')};self.close()\">Екатеринбург</span>


Взято отсюда
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 15:06
Как сделать, чтобы музыка <embed> на странице не играла только при первом посещении? Bad Request Общие вопросы Javascript 22 27.07.2009 18:44
Браузер доказывает что не видит функцию SleepWalker Общие вопросы Javascript 7 17.06.2009 22:14
Сторонние библиотеки - быть или не быть? IIIEPJIOK Оффтопик 64 21.03.2009 18:39
Не могу определить элемент AlexMak Общие вопросы Javascript 23 21.01.2009 16:50