PDA

Просмотр полной версии : глюк JavaScript?


tandem
23.08.2006, 13:29
Помогите пожалуйста!!!
Этот код работает через раз:
getURL("javascript:window.open('xxx.php','','width=1,height=1,menubar=0,scrollbars=0'); void(0);");

Как быть?:yahoo:

iNils
31.08.2006, 11:23
Для начала описать проблему более полно. Где не работает (браузер, локалка/сеть), с чем не работает (версия плеера), ну и тд.

tandem
14.04.2007, 17:37
Опытным путем выяснил, что проблема не в Яве.
Ситуация такая: при getURL("http://www.siteru/download.php?file=mp3.mp3", "_self"); флешка запрашивает файл download.php, который выдает файл mp3.mp3 на скачку.

Содержимое download.php:
<?
$file = $_GET['file'];
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$file");
header("Content-Length: ".filesize($file));
header("Content-Transfer-Encoding: binary");
readfile($file);
?>

Судя по всему проблемка в этом, так как после такого никакой поп-ап по методу getURL("javascript: window.open...") уже не откроется, выходит или ошибка или просто нич не происходит.

Что делается не так? Судя по всему проблема в php файле...
Помогите.

etc
14.04.2007, 19:09
http://www.flasher.ru/forum/showthread.php?t=92951

tandem
15.04.2007, 12:38
http://www.flasher.ru/forum/showthread.php?t=92951
Так я же гружу файлы через этот download.php с этого же сервера, иногда даже из этой же папки где и сама флешка находится.

Я так понимаю, что для такой ситуации необязательно прописывать allowDomain?

Самое интересное, что через fscommand все работает безотказно, но её я использовать не буду.

Как быть? :boredom:

etc
15.04.2007, 19:59
Судя по тексту, вы не очень понимаете, о чем говорите.

tandem
15.04.2007, 22:13
Возможно я неправильно описал ситуацию...
Попробую еще раз:
1) все действия происходят на одном URL
2) есть флешка, файл mp3, скрипт download.php (содержание которого приведено выше)
3) во флешке есть кнопка которая вызывает попап окно на страницу с ЭТОГО ЖЕ домена через getURL("javascript: window.open...")
все работает отлично, но...
4) если нажать на другую кнопку, которая ведет по getURL на download.php?file=1.mp3 (файл mp3 находится в одной и тойже директории на сервере, что и флешка и download.php) произойдет предложение пользователю скачать файл MP3.
5) далее если уже нажать на 1-ю кнопку, которая вызывает попап окно, то уже ничего не происходит и окно не вылезает... а в 7 ИЕ вообще говорится о неизвестной ошибке...

Как быть в такой ситуации...
Самое интересное, что если производить вызов попапа через fscommand, то никаких проблем не возикает...
Заранее всем спасибо за ответы

tandem
15.04.2007, 22:44
Если кого-то заинтересует эта ситуация, то могу в личку кинуть ссылку на проект, где эта проблема актуальна. :-)

techno
15.04.2007, 22:52
А может все дело в кеше?

P.S. не по теме: disignerdisigner - можно звук отдельно подгружать, замучился ждать!

P.P.S. пожеланице: тему не подмывай, а то плюсик дадут.

tandem
15.04.2007, 23:00
А может все дело в кеше?

P.S. не по теме: disignerdisigner - можно звук отдельно подгружать, замучился ждать!

P.P.S. пожеланице: тему не подмывай, а то плюсик дадут.

Звук подгружать отдельно не будем - композиция испортится :victory:

про какие плюсики идет речь?

tandem
15.04.2007, 23:12
Вот сварганил пример, посмотрите господа знатоки:
http://www.designerdesigner.ru/test/popup/

CorC
16.04.2007, 11:00
Хм, это косяк ИЕ, в Опере и ФФ все работает (у меня по крайней мере)

tandem
16.04.2007, 11:20
У меня тоже причем и в 6-й и в 7-й версии, я вот ниче понять и не могу...
Обычно ведь наоборот бывает...

tandem
17.04.2007, 12:39
Ребят, что никто не знает в чем дело? :quiet:

etc
17.04.2007, 12:52
А почему у меня второй раз открывается снова яндекс?
И, видимо, нужно убрать void(0); иkb _self.

з.Ы. Темы у нас не поднимают.

tandem
17.04.2007, 13:33
А почему у меня второй раз открывается снова яндекс?
а в каком браузере Вы смотрите?

И, видимо, нужно убрать void(0); иkb _self.

Если убрать void(0); - то будет ошибка - посмотрите пример по ссылке указанной выше сного, я его обновил.
Если убрать _self - ничего не изменится...

etc
17.04.2007, 13:36
В IE не пашет. Я говорю, что в коде надо попробовать убрать void(0); и _self.

tandem
17.04.2007, 13:38
см сообщение выше, дополнил

etc
17.04.2007, 14:03
Значит это исключительно баг IE. Нужно попробовать вызывать функцию из JS, открывающую окно и проверять, создано окно или нет.

tandem
17.04.2007, 14:10
если вызывать через fscommand, т.е. функцию вызова будет вписана с страницу через JS - никаких проблем не возникает...

Просто помоему не все браузеры во всех своих версиях нормально тянут fscommand, с оперой проблемы были версии в 6,7 - непомню...

Просто неясен один факт: если это баг IE, то почему никто никогда раньше этого не понял? Неужели никто попап окна из флеша не вызывает?

etc
17.04.2007, 14:28
А вызвать javascript:myFunction() совесть не позволяет?

tandem
17.04.2007, 14:51
Пробовал - без разницы...
Посмотри пример, обновил как ты сказал.

И чего теперь делать? :-)

wvxvw
19.04.2007, 02:39
Ну, попробуй ExternalInterface.call("myFunction", "arguments");

Kikasso
20.04.2007, 02:48
Попробуй имя окна написать, а не пустую строчку ( в window.open()второй параметр )
А по-хорошему, открывашку лучше в html пихать, а из флеша ее вызывать.
_self и void тоже не нужны.

tandem
21.04.2007, 11:45
Попробуй имя окна написать, а не пустую строчку ( в window.open()второй параметр )

Попробовал - та же фигня...

Через fscommand, когда функция описана в html, то все работает, но не хочется её использовать.

tandem
21.04.2007, 12:07
Ну, попробуй ExternalInterface.call("myFunction", "arguments");

Работает, только вот это в 8-ке только, да и этот метод поддерживатся только одними из самых последних версий браузеров.

Но все равно спасибо. :victory:

wvxvw
21.04.2007, 18:24
Не проверял, но хелп утверждает, что http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_14192#methods вот так оно работает... ну и ессно, в восьмерке, тут уж ничего не поделаешь

Kikasso
21.04.2007, 19:13
Еще такой вариант..Вы в <script> language или type не пробовали указывать? И комментами обрамлять, как водится?
<script type="text/javascript">
<!--
// код
// -->
</script>

tandem
22.04.2007, 12:07
Пробовал - без разницы.

etc
22.04.2007, 13:38
http://noregret.org/tutor/navigation/