Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Текущий URL 
V
    Опции темы
korob2001
Дата 3.12.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Привет!
Подскажите пожалуйста, как узнать текущий url, т.е. тот который прописан в адресной строке браузера?

Это мне нужно для того, что бы переключать языки с одного на другой. Т.е. в каждую HTML страницу, встроен .swf файл, с флажками двух языков, в моём случае это "Французский" и "Нидерландский". Сама страница генерируется на сервере Perl программой. Для того, что бы изменить язык, нужно изменить значение параметра lang с "nl" на "fr", который передаётся методом GET. Допустим пользователь загрузил страницу "Home", с параметром "lang=nl", набрав в адресной строке:

Затем он жмёт на французский флаг, в итоге должен получиться такой адрес:

После чего вся информация страницы, будет переведена на французский язык. Первод делается при помощи Perl + MySQL + XML, потому это не имеет отношения непосредственно к Flash и ActionScript. Задача последнего только изменить значение одного параметра и загрузить туже страницу, которая загружена в текущий момент, но уже с изменённым параметром lang.
В случае, показаном выше, был послан запрос к программе /cgi-bin/home.pl, но это может быть и другая программа, например /cgi-bin/contact.pl, /cgi-bin/guest.pl и т.д. Текущий URL мне нужен для того, что бы загрузить перевод именно текущей страницы, а не какой-нить другой. Нужно что-то типа переменной окружения $ENV{SCRIPT_NAME}.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
AlDev
Дата 3.12.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



trace (_root.url);

а вообще на эту тему
http://noregret.org/tutor/navigation/

Добавлено @ 14:05 
В строке браузера - через JS. Читай Нокса, там решение smile
PM MAIL WWW ICQ YIM MSN   Вверх
korob2001
Дата 4.12.2006, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Что-то ничего не пойму.
Код

trace(_root.url);

Пишет undefined.
Создаю динамическое текстовое поле с именем info, после пишу такой код:
Код

_root.info.text = _root.url;

Поле всё равно остаётся пустым, после запуска.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
AlDev
Дата 4.12.2006, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



ну может быть _url =) я не помню, посмотри MovieClip class
PM MAIL WWW ICQ YIM MSN   Вверх
korob2001
Дата 4.12.2006, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Не, не то. Выводит следующий адрес:

А нужен был:

т.е. то который был в адресной строке браузера.

Ладно, сейчас ещё попробую поискать, может чего-нить и нарою.

Это сообщение отредактировал(а) korob2001 - 4.12.2006, 23:22


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
AlDev
Дата 5.12.2006, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



Я же дал ссылку в самом начале с JavaScript.

Цитата(AlDev @  3.12.2006,  19:04 Найти цитируемый пост)
а вообще на эту тему
http://noregret.org/tutor/navigation/

Добавлено @ 19:05 
В строке браузера - через JS. Читай Нокса, там решение


PM MAIL WWW ICQ YIM MSN   Вверх
korob2001
Дата 5.12.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Да нет, я просто думал что есть, что-то встроенное. Просто лучше чем взаимодействовать через JS, я могу просто передать Flash'ке ещё один параметр. Например так:
Код

/site/swfs/title.swf?sid=&lang=nl&pag=home.pl

где параметр pag содержит адрес страницы, которая в данный момент показана.
Вот кстати каким образом я решил этот вопрос, а так же этот, если их объединить.
Сначала почитал вот эту доку, которую привёл SelenIT. Попробовал, но меня смутил размер файла swfobject.js, казалось бы для такой простой задачи. Да и не любитель я юзать чужой код.

Решил пойти своим путём.
Что-то мне подсказало, что достаточно вынести код, который выводит теги <object ...> .... </object> в оддельный файл .js, что бы IE не заметил их.
Написал такой код:
Код

function shSWFile(swf,id,width,height,backcolor) {
    document.write("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" width=\"" + width + "\" height=\"" + height + "\" id=\"" + id + "\" align=\"\">");
    document.write("<param name=\"movie\" value=\"" + swf + "\">");
    document.write("<param name=\"quality\" value=\"high\">");
    document.write("<param name=\"bgcolor\" value=\"" + backcolor + "\">");
    document.write("<embed src=\"" + swf + "\" quality=\"high\" bgcolor=\"" + backcolor + "\" width=\"" + width + "\" height=\"" + height + "\" name=\"" + id + "\" align=\"\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\">");
    document.write("</embed>");
    document.write("</object>");
}

После чего сохранил его в файл myswf.js
Затем в HTML странице пишу такой код, что бы подключить файл myswf.js и использовать функцию shSWFile().
Код

<html>
   <head>
       <title>Test</title>
       <!--// Подключаем файл myswf.js //-->
       <script language="JavaScript" type="text/javascript" src="myswf.js"></script>
   </head>
   <body>
       <!--// Вставляем первую Flash'ку //-->
       <script language="JavaScript" type="text/javascript">
           <!--//
              shSWFile("/flash/title.swf?sid=&lang=nl&pag=home.pl","title","778","200","#000000");
           //-->
       </script>
       <br/><br/>
       <!--// Вставляем вторую Flash'ку //-->
       <script language="JavaScript" type="text/javascript">
          <!--//
              shSWFile("/flash/menu.swf?sid=&lang=nl&pag=home.pl","menu","203","195","#000000");
          //-->
       </script>
   </body>
</html>

Здесь так же следует обрать внимание на параметр pag, в котором передаётся текущий URL во Flash фильм.

В итоге две проблемы решены:
1: IE отстебался со своей защитой, без использования, достаточно большого, swfobject.js
2: Flash знает текущий url каждой страницы, без взаимодействия с JS.

Всем ОГРОМНОЕ СПАСИБО и + за помощь.

PS: Можно было бы передавать ещё несколько аргументов функции JavaScript shSWFile(), например:
classid,  quality, version и т.п. ,но это помоему уже лишнее, для данной задачи.
Хотя может я и не прав?


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
AlDev
Дата 6.12.2006, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



открой например вот это:
http://z3labs.com/projects/nn/

там хоть и без swf object, но показан пример с языком и навигацией, когда Flash не перегружается!

Про не любитель юзать чужой код - эт глупо smile
PM MAIL WWW ICQ YIM MSN   Вверх
korob2001
Дата 6.12.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата(AlDev @  6.12.2006,  06:04 Найти цитируемый пост)
Про не любитель юзать чужой код - эт глупо

А как же велосипеды?  smile 
Цитата(AlDev @  6.12.2006,  06:04 Найти цитируемый пост)
там хоть и без swf object, но показан пример с языком и навигацией, когда Flash не перегружается!

Да нет, это не то.
Там флешка на всю страницу и иниформации там маловато.
У меня на Flash только верхушка и меню, всё остальное html + CSS + JavaScript. Информации намного больше, её тащитPerl из БД + XML + шаблоны, да и меняется она динамически.



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
AlDev
Дата 6.12.2006, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



А. Если только шапка тады да.

Цитата(korob2001 @  6.12.2006,  15:48 Найти цитируемый пост)
А как же велосипеды?  smile 

А как же Framework-и?

PM MAIL WWW ICQ YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 1,2 | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.