|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Проблемы в IE - ExternalInterface.call("eval", "2+2")
Здравствуйте. Заранее извиняюсь за не очень стройное название темы(действительно сложно красиво сформулировать данный вопрос). На днях узнал что есть такой удобный способ возвращать значения переменных и выражений из JS во флеш. А делается это так:
В FF, Opera, всё отрабатывает отлично. И в текстовое поле выводится значение 4. Но вот в IE почему то всегда null. Первое что приходит в голову, IE не поддерживает такие ExternalInterface.call("eval" вызовы из флеша. Но если например сделать так: То окошко с алертом выскакивает во всех браузерах. Что означает что ExternalInterface.call действительно отрабатывает и вызывает код JS. Кто в теме, пожалуйста помогите. Если не очень лень
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
Модрон-ветеринар
|
1. Попробуйте просто без флеша под IE вывести этот eval и посмотрите, что получится.
2. Возможно в коде публикации (если она сделана стандартно, а не с помощью SWFObject) разрешены внешние скрипты в не-IE браузерах, а для IE не прописано. 3. Самое главное. Зачем оно вам? ExternalInterface.call - отличный метод, постоянно применяю, только мне кажется, что можно как-то без eval обойтись. Зачем вам делать вызов JS и производить вычисления в среде JavaScript, если есть ActronScript? Какая стоит задача?
__________________
Идите первым! Последний раз редактировалось mooncar; 16.08.2011 в 00:38. |
|
|||||
Большое спасибо за ответ. Здесь задача получить URL из строки адреса браузера. И в FF и в Opera это замечательно работает.
Использую такой код: Пример намеренно привёл простой что бы идея была понятна всем.
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
Модрон-ветеринар
|
Если и тут null будет, то проблема у вас не в коде AS, а в публикации флеша.
__________________
Идите первым! Последний раз редактировалось mooncar; 16.08.2011 в 00:43. |
|
|||||
Да действительно. Здесь тоже null в IE.
Делал так: В FF, Opera выводит 6. А в IE null. Сами eval в IE работают. Нашёл такую страничку для тестов - http://www.w3schools.com/jsref/jsref_eval.asp А по настройкам публикации. Не знаю. Стандартные настройки. Ничего не менял. Код HTML написан от руки. <html> <head> <title> </title> </head> <body> <object width="550" height="400"><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="always" /><param name="movie" value="test.swf" /><param name="allowFullScreen" value="true" /><embed src="test.swf" allowscriptaccess="always" width="550" height="400" menu="false" quality="high" bgcolor="#000000" allowfullscreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object> </body> </html> А вообще у вас в IE работают return'ы в функциях описанных в ExternalInterface.call() ? Возможно это какая то недоделка FP и поэтому не работает?
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
Модрон-ветеринар
|
Цитата:
Ну как, разобрались?
__________________
Идите первым! |
|
|||||
К сожалению нет. С IE не выходит никак
Цитата:
Так как у вас работает, подозреваю что это какая-то местная проблема связанная с моим компом Другого объяснения не вижу А настройки публикации... Там ничего не менял. Всё стандартно. И вообще суть этого метода определить на каком домене юзается флешка и если это не наш родной домен, то заблокировать флешку. В любом случае спасибо вам большое что откликнулись. Я думаю что в целях защиты и этого хватит. Ведь народ пользуется разными браузерами, и если защита работает хоть в каких-то то воровать уже никто не станет.
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
Модрон-ветеринар
|
Цитата:
Кстати, вот что. Вы наверное на домашнем компе тестируете? Локально страницу запускаете? Или на хостинге то же самое? Если проблема с локальным тестированием, попробуйте внести диск в доверенную зону, как здесь описано, может быть из-за этого. http://www.flasher.ru/forum/showthread.php?t=92951 Это несложно. Плеер-плагин и плеер-компонет-ActiveX для IE - это разный софт, в принципе, может быть поэтому работает в не-IE браузерах.
__________________
Идите первым! Последний раз редактировалось mooncar; 17.08.2011 в 22:57. |
|
|||||
Вот залил сюда просто пример.
http://azag--thoth.narod.ru/my.swf Код на первом кадре: import flash.external.ExternalInterface; text_tf.text = ExternalInterface.call('function testUrl () { return document.location.href }'); Извините что отписываюсь спустя столько дней. Были обстоятельства не позволяющие пользоваться компом. Большое спасибо вам за ваши советы
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
Модрон-ветеринар
|
Если флешка опубликована на странице, то все определяется и в IE.
Вот мой пример: http://vesta-s.ru/demo/externalinterface/main.htm Посмотрите в IE и в не-IE браузерах (верхняя строка, на остальное не обращайте внимание). Видимо, при прямой загрузке в IE флеш не может полноценно работать с JS.
__________________
Идите первым! Последний раз редактировалось mooncar; 22.08.2011 в 22:16. |
Часовой пояс GMT +4, время: 18:03. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|