Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > window.opener в файерфоксе


Автор: bars80080 29.1.2008, 12:25
добрый день,

вопроса, наверно, весьма простой...

с родит.документа создаю окно:
Код
myWin = open(okno, "displayWindow", "width=500,height=550,status=no,menubar=no,scrollbars=yes");

в новом окне провожу рассчёты и возвращаю значение следующим методом:
Код
function retpage(st) {
    window.opener.document.getElementById(addr).value = st;
    self.close(); }
<a href="javascript:retpage('СОРМОВО')">СОРМОВО</a>


в ИЕ и опере прокатывает, а вот в ФФ нет, что делать?


Автор: vasac 29.1.2008, 13:22
Кто такой addr?

Автор: bars80080 29.1.2008, 13:31
не суть важно, 
параметр, который я перетаскиваю туда сюда, просто переменная, в данном случае, в ней имя id элемента,

код в ИЕ и опере нормально работает

Добавлено через 8 минут и 24 секунды
сейчас посмотрел, он вообще эту функцию не вызывает, словно конструкция:
Код

<a href="javascript:retpage('СОРМОВО')">СОРМОВО</a>
не действует

Автор: bars80080 30.1.2008, 10:41
ап,

всё-таки хотелось бы узнать ответ на столь (как мне кажется) простой вопрос

возможно я просто что-то не догнал, типа надо: <a href="javascript:retpage('СОРМОВО');return:false;">СОРМОВО</a>
(правда, так не работает)

плиззз...

Автор: vasac 30.1.2008, 11:13
Цитата(bars80080 @  29.1.2008,  13:31 Найти цитируемый пост)
не суть важно, параметр, который я перетаскиваю туда сюда, просто переменная, в данном случае, в ней имя id элемента,

Когда не работает три строчки суть важно всё. Вы бы потратили минуту на более подробное описание, а вместо этого тратите дни.
Вы уверены, что у элемента скрывающегося за addr атрибут value имеет какой-то смысл?

Цитата

возможно я просто что-то не догнал, типа надо: <a href="javascript:retpage('СОРМОВО');return:false;">СОРМОВО</a>

Лучше <a href="#" onclick="retpage('COPMOBO'); return false;">
А дальше займитесь элементарной отладкой:
onclick="alert('Срабатывает?')"
...
function retpage(st) {
alert('Дошли до retpage');
alert('window.opener=' + window.opener);
...
}

Автор: bars80080 30.1.2008, 11:41
ну, подробно, так подробно, дабы не искушать

в родительском документе есть такие строчки:
Код
<script language="javascript"><!--
function opok(backad) { 
    okno = "<? echo $BASE; ?>opok.php?language=<?=$language?>&addr=" + backad;
    myWin = open(okno, "displayWindow", "width=500,height=550,scrollbars=yes"); }
//--></script>

<td><input type="text" id="idznak1" name="znak1" size=30 value="<?=$znak1?>"></td>
<td><input type="button" onclick="opok('idznak1')" name="zap1" value=" >> " <?=$class?>></td></tr>


в окне myWin (opok.php), такие строчки:
Код

<script src="" type="text/javascript"><!--
<? if(empty($_REQUEST['addr'])) $addr = ''; else $addr = $_REQUEST['addr']; ?>
function retpage(st) {
    window.opener.document.getElementById('<?=$addr?>').value = st;
    self.close(); }
//--></script>

<?
for($i = 0; isset($res[$i]); $i++) {
    echo '<a href="#" onclick="retpage(\''.$res[$i]['station'].'\'); return false;">'.$res[$i]['station'].'</a><br />'; }
?>


чуть-чуть изменил чтобы вообще просто было
при открытие окна opok.php, html выглядит так:
Код

<script src="" type="text/javascript"><!--
function retpage(st) {
    window.opener.document.getElementById('idznak2').value = st;
    self.close(); }
//--></script>
<a href="#" onclick="retpage('ЦНА'); return false;">ЦНА</a><br />
<a href="#" onclick="retpage('ЦНИСИ'); return false;">ЦНИСИ</a><br />
<a href="#" onclick="retpage('ЦНОРИС-ЦХАЛИ'); return false;">ЦНОРИС-ЦХАЛИ</a>

такой код работает в ИЕ6 и Опера, в ФФ реакции на нажатие ссылки нет
если вставить alert в ссылку:
Код
echo '<a href="#" onclick="alert(\'qwer\')">ЦНА</a>';

то алерт выскакивает.
если его вставить в функцию:
Код
function retpage(st) {
alert('qwe');

то не выскакивает

Автор: Sardar 30.1.2008, 14:11
Открой в firefox, посмотри в консоли ошибок (а лучше в FireBug'е) нет ли синтаксических где нибудь выше функции.
Замени href="javascript..." на onclik="retpage('ЦНА');", в href лучше поставь ссылку на случай если JS'а нет.

По проблеме, если retpage() не вызывается, то это только синтаксическая, на вскидку </script> перенеси на следующую строку, сейчас оно в комменте.

Автор: bars80080 30.1.2008, 14:58
спасибо Сардар,

в основе глупых вопросов (когда что-то не работает вопреки здравому смыслу),
всегда лежат глупые ошибки

оказывается ФФ выводила из себя src в этой строке
Код
<script src="" type="text/javascript"><!--

даже пустое значение, заставляло его не видеть функции внутри тэга script
Код
<script type="text/javascript"><!--


на автомате привык ставить...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)