Передача строки запроса в JS window.open в IE7 не работает?

Я могу запустить следующее через адресную строку в Firefox:

javascript:window.open("http://my.hostname.com/test.php?id=12345", "exportWindow");

Когда я печатаю_r($_GET), я вижу массив $_GET со значениями, которые я указал в URL-адресе. Но когда я делаю это в IE7, он просто печатает «ноль» на экране.

ИЗМЕНИТЬ

Оказывается, это было из-за блокировщика всплывающих окон. Однако фактический код, который использует этот фрагмент, не работает — я получаю Array() в IE при печати:

  $Page->addJQuery('$("#pageForm div.export").click(function() { ' . $jQueryVars . 'window.open("' . $this->getUrl() . '"' . $jQueryParams . ', "exportWindow"); return false; });');

person Chad Johnson    schedule 16.10.2009    source источник


Ответы (3)


IE блокирует всплывающее окно. «Нуль», который вы видите, — это возвращаемое значение вызова JavaScript. Отключите блокировщик всплывающих окон, и он должен работать.

person jáquer    schedule 16.10.2009
comment
Хорошо, это работает. Однако фактический код, который использует фрагмент, этого не делает. У вас есть идеи на этот счет? Когда я нажимаю кнопку, я просто получаю Array() при печати $_GET. Вот: $Page->addJQuery('$(#pageForm div.export).click(function() { ' . $jQueryVars . 'window.open(' . $this->getUrl() . '' . $ jQueryParams.', exportWindow); вернуть ложь; });'); - person Chad Johnson; 16.10.2009

Оказывается, ПО НЕКОТОРОЙ ПРИЧИНЕ мне нужно было использовать .live("click", function(), а не .click(function(). Не знаю, почему, так как я использую .change в нескольких других местах, которые работают в IE... но тем не менее, это устранило проблему.

person Chad Johnson    schedule 16.10.2009

Оказалось, что мне нужно использовать jQuery .live, а не .click.

person Chad Johnson    schedule 01.01.2010