PDA

Просмотр полной версии : Проверить в Action Script, включен ли JavaScript.


FDS
18.09.2008, 17:01
Имеется ART CMS, которая открывает странички по аяксу, если включен яваскрипт, и нормальным образом, если отключен.
Для организации меню на flash необходимо знать, включен ли JavaScript у пользователя, и в зависимости от этого формировать разные URL ссылок:
вида "www.site.ru/#p2", если JavaScript включен, и
вида "www.site.ru/p2.html", если выключен.
Как это определить?
Встроенных средств в Action Script не нашли. Решили поступить так: при помощи swfobject (который написан на JavaScript) передавать переменную во флэш.
Если переменная видна - значит, JavaScript включен, если не видна - выключен.


<script type="text/javascript">
var flashvars = {
name1: "1"
};

var params = {};
var attributes = {};
swfobject.embedSWF("/index.swf", "myContent", "100%", "797", "8.0.0","expressInstall.swf", flashvars, params, attributes);
</script>


Вот таким образом пытаемся ловить это в Action Script:

on(release){
if(_root.name1 == 1){
getURL('#p2', '_self');}
else{
getURL('www.site.ru/p2.html', '_self');
}
}

А дальше начинается вообще мистика - данный код отлично работает в Firefox, но в Opera и IE не работает! Причем неработает именно та часть, когда яваскрипт выключен и переменная не приходит флэш грузится, но перехода по ссылке просто не происходит. При включенном - все нормально.
Было подозрение, что надо как-то проверять, определена ли переменная, и без такой проверки интерпретатор останавливается... Но в Firefox же работает!
Версия плеера во всех браузерах одинакова - 9.

Obi
23.09.2008, 17:28
Возможно swfobject криво в IE работает.

Smouck
23.09.2008, 18:05
Если вся проблема только в ссылках, то мне кажется запросто поможет modrewrite в .htaccess ... и ни какого гемороя с JS

Psycho Tiger
23.09.2008, 19:45
Почему мистика?))
IE издревле был кривым. Как писали на баше:
neon:
Писать на javascript'e - это все равно, что сдавать задачу трем разным преподам одновременно:
Дедушка Огнелис Мозиллович - очень добрый, принимает очень хорошо и забивает на мелкие помарки

Потомственный преподаватель девятого, или, что еще хуже, в восьмом поколении Оперов - сволочь, какая есть в любом учебном заведении - придирается к каждому понятному и не понятному символу, причем иногда сам пишет что-то в твое решение красной ручкой

А Инет Эксплорерович вообще имеет привычку читать решение жопой, а потом хрен поймешь, где именно его жопе что-то не понравилось
Вот и попробуй угодить всем троим...

FDS
29.09.2008, 16:25
Obi
в том-то и дело, что глючит вариант, когда JS отключен, а значит swfobject тут не при чем.
Smouck
modrewrite в .htaccess не поможет, поскольку переходы осуществляются аяксом, и тут без JS никуда.
то есть, проблема однозначно в ActionScript...
всем большое спасибо за версии.