Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.06.2009, 17:08
Milagro вне форума Посмотреть профиль Отправить личное сообщение для Milagro Найти все сообщения от Milagro
  № 1  
Ответить с цитированием
Milagro

Регистрация: Jul 2005
Сообщений: 30
По умолчанию Как получить доступ к DOM броузера?

Нужно из флешки прочитать например document.URL, т.е. URL html-файла в который внедрен флеш-ролик.

Поиск курил. Проблема в том, что внешнего JavaScript кода на странице нет.

Пробовал так:
Код AS1/AS2:
import flash.external.ExternalInterface;
var from_js = ExternalInterface.call("return(document.URL)");
возвращается null

Старый 19.06.2009, 17:33
random13 вне форума Посмотреть профиль Отправить личное сообщение для random13 Найти все сообщения от random13
  № 2  
Ответить с цитированием
random13
 
Аватар для random13

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
а неужели создав функцию на странице и вызвав ее через кол нельзя вернуть урл?

Старый 19.06.2009, 18:01
Milagro вне форума Посмотреть профиль Отправить личное сообщение для Milagro Найти все сообщения от Milagro
  № 3  
Ответить с цитированием
Milagro

Регистрация: Jul 2005
Сообщений: 30
Я не могу ничего создать на странице, страница "чужая". Ну например как в случае flash-баннера, который вставлен в произвольные, "чужие" страницы.

Старый 19.06.2009, 18:54
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код AS1/AS2:
ExternalInterface.call('return document.location.href');
Только если allowScriptAccess указан как always.

Старый 19.06.2009, 19:25
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от __etc Посмотреть сообщение
Только если allowScriptAccess указан как always.
Или указан как "sameDomain", либо не указан вовсе (по умолчанию = "sameDomain"), а флешка грузится с того же домена, откуда было загружено грузящее флешку приложение (страница).
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 19.06.2009, 19:34
Milagro вне форума Посмотреть профиль Отправить личное сообщение для Milagro Найти все сообщения от Milagro
  № 6  
Ответить с цитированием
Milagro

Регистрация: Jul 2005
Сообщений: 30
Попробовал - возвращает null

Код AS1/AS2:
import flash.external.ExternalInterface;
_root.varout.text = ExternalInterface.call("return document.location.href");


Последний раз редактировалось Milagro; 19.06.2009 в 19:41.
Старый 19.06.2009, 20:47
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 7  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Код AS3:
ExternalInterface.call('function() { try { return document.location.href; } catch ( e ) {} }()');

Старый 22.06.2009, 11:49
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Если политикой безопасности не разрешен доступ к хостер-приложению, то при попытке к нему обратиться случится эксепшен. Лучше обернуть сам запрос в try-catch. Ну это так, к слову.

Код AS3:
try {
	ExternalInterface.call('function() { try { return document.location.href; } catch ( e ) {} }()');
} catch (error:Error) {
	trace('Ooops!');
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 22.06.2009, 12:16
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 9  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
dimarik, лучше поставить проверку на ExternalInterface.available

у меня в коде ошибка кстати. последние скобки в строке не нужны.

Старый 22.06.2009, 12:31
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
ExternalInterface.available тоже вызовет эксепшен.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:13.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.