window.open() не открывает новое окно.

window.open() не открывает новое окно.

Здравствуйте.
Опишу проблему.
На странице есть ссылка, типа <a href="javascript: openWin('act_edit.php', 341170)">7.74</a>, которая вызывает следующий код:
PHP:
function openWin(file, id) {
    var w = screen.availWidth;
    var h = screen.availHeight;
    w = open( file+"?id="+id, id, "width="+w+",height="+h+",status=no,scrollbars=yes,toolbar=no,menubar=no,left=0,top=0" );
}
и открывается новое окно - ура.
А вот в этом новом окне, есть кнопочка <button onClick="printWin()">распечатать</button>, которая вызывает такую ф-ию:
PHP:
function printWin() {
    var x = screen.availWidth;
    var y = screen.availHeight;
    w = open(
        "act_edit.php?id={ID}&print",
        "{ID}",
        "width="+x+",height="+y+",status=no,scrollbars=yes,toolbar=no,menubar=no,screenX=0,screenY=0"
    );
}
и в этот раз, окно не открывается вообще, но чо то как будто бы и грузится, но что... куда... непонятно. Самое главное, что если урл этой страницы открыть во вкладке браузера (а не в новом окне, как оно изначально открывается), и уже там кликнуть но кнопке "распечатать", то новое окно откроется и загружен туда будет нужный контент... Короче, проблема видимо в том, что из окна открытого через window.open() не получается открыть другое новое окно вызовом этой же функции window.open().
Что же делать ?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Убери фигурные скобки
 
function printWin() { <- эти что ли ? так их нельзя убирать - функция тогда не определена будет... да и вообще ошибка синтаксиса.
А в урле {ID} - это плейсхолдер из шаблона - он полностью заменяется
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
...
<td>
<script>
function printWin() {
var x = screen.availWidth;
var y = screen.availHeight;
w = open(
"act_edit.php?id=341163&print",
"341163",
"width="+x+",height="+y+",status=no,scrollbars=yes,toolbar=no,menubar=no,screenX=0,screenY=0"
);
}
</script>
<button onClick="printWin()">распечатать</button>
</td>
...

и, кстати, если выполнить этот код непосредственно в консоли фаербага, то контент (печатная форма) загружется в текущее окно, а не в новое.

-~{}~ 10.11.08 13:16:

ссылку дать не могу, сайт закрыт...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
и, кстати, если выполнить этот код непосредственно в консоли фаербага, то контент (печатная форма) загружется в текущее окно, а не в новое
Если именно в этом у тебя проявляется нерабочесть
то
If a window with this name already exists, then window.open() will display the new content in that existing window
 
Точно !!
Заработала... причём мне вообще по барабану, какой у него там идентификатор и ссылка на новое окно - всё равно не используется (переменная w)
Огромное спасибо за помощь !

-~{}~ 11.11.08 13:18:

Появилась ещё проблемка...
В окне, открытом вышеописанными способами не работает следующее:
<button onClick="location.href='?id=341163&print'">распечатать</button>... опять чо то куда то грузится, но содержимое окна не меняется. Если же запустить "location.href='?id=341163&print'" в консоли фаербага, то браузер нормально переходит на указанный урл... кто нибудь знает, что опять за тонкости ?

-~{}~ 11.11.08 14:19:

Оказывается, при клике, по кнопке, вначале отправлялась форма, в которой эта кнопка находилась, а потом делалась какая то нелепая попытка перейти на урл, указанный в location.href. Оказывается надо делать так:
<button onclick="location.href='?id={ID}&print'; return false;">распечатать</button>

А вспомнил я это благодаря замечательному плагину tamperdata
 
Сверху