jquery — всплывающее окно window.open href работает в формате html, но необходим правильный синтаксис для переполнения стека

У меня ситуация, которую я не могу решить. Я не могу заставить всплывающее окно работать должным образом на моей странице php — но тот же самый href для всплывающего окна в html made table — работает — ссылка для всплывающего окна с динамическим href — работает хорошо. Так что я думаю, что включенная функция в порядке. Нет необходимости указывать здесь функцию. Он открывает всплывающие окна без каких-либо проблем в HTML, и родительская страница остается в порядке.

Это вся А в HTML-таблице

<A class=black href="<?php if (isset($_GET['art_id'])) { $id = intval($_GET['art_id']); } mysql_query("SET CHARACTER SET utf8"); $query=mysql_query("SELECT art_id FROM table WHERE art_id = '" . mysql_real_escape_string($id) . "' ") or die("err"); while($row=mysql_fetch_array($query)) { echo "ab.php?art_id=$row[art_id]"; } ?>" onclick="NewWindow(this.href,'rank','450','230','no','center');return false" onfocus="this.blur()" settings>GO</A></div>

Тем не менее, когда этот же динамический href при помещении в php-сгенерированную таблицу * с применением той же функции, я получаю двойную загрузку. Всплывающее окно загружается нормально, но родительская страница также загружает содержимое всплывающего окна.

Это полная А для php сгенерированной таблицы

echo "<a href='ab.php?art_id=$row[art_id]' onclick=NewWindow(this.href,'rank','450','230','no','center') return=false onfocus=this.blur()>".'GO'."</a>";

Этот открывается правильно во всплывающем окне, но также загружает ab.php в главное, родительское окно. Я работал с target: _blank, _child, пытался ввести фактический URL и т. Д. … пробовал с разными \ «NewWindow … настройками … Ничего.
Теперь я знаю, что это связано с \ ‘NewWindow и т. Д., С этим href цитированием в php, но я не могу найти никакого разумного объяснения, как это сделать; каждое объяснение для всплывающего окна для html основанных без эха, без уже заключенных в кавычки строк.
Я знаю, что это все устарело, и есть другой способ сделать это — но я должен сделать это таким образом для моего проекта.
Может кто-то помочь мне, пожалуйста?

0

Решение

Вы должны поместить звездочки вокруг атрибутов вашего вывода. Ты можешь использовать ', " и вы можете избежать их с \,

Проблема была в том, что вы написали return = false как собственный атрибут ht l, но это часть onclick. (Он говорит браузеру не открывать URL в главном окне)

echo '<a href="ab.php?art_id='.$row['art_id'].'" onclick="NewWindow(this.href,\'rank\',\'450\',\'230\',\'no\',\'center\'); return false;" onfocus="this.blur();">GO</a>';

И, пожалуйста, не пишите код PHP все в одну строку, как в рабочем примере выше. Никто не хочет читать это, и это обычное место для ошибок. Используйте функции и переменные!

0

Другие решения

Это сделало свое дело. правильное использование синтаксиса \ …

echo "<a href=ab.php?art_id=$row[art_id] onclick=\"NewWindow(this.href,'rank','450','230','no','center');return false\" onfocus=\"this.blur()\" settings>"."GO"."</a>";
0

По вопросам рекламы [email protected]