![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 15
|
Можно ли средствами AS3 получить html код страницы, на который в данный момент находится скомпилированный swf-файл ?
|
|
|||||
|
Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
|
__________________
Нормально делай — нормально будет! |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 15
|
Вот фрагмент кода, как я получаю html код страницы.
Но что то onComplete не выполняется. Возможно, на сервере где находится страница, есть crossdomain.xml. А есть ли способ получения html кода стрнаницы другим способом, отличным от того который описан выше? Последний раз редактировалось iNils; 10.02.2011 в 14:05. |
|
|||||
|
tovarz, не забывайте обрамлять код соответствующими тегами. Прочтите об этом в правилах раздела. Не знаю, будет ли еще актуален приводимый мной код.
package { import flash.display.Sprite; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFormat; import flash.external.ExternalInterface; [SWF(width="1024", height="768", frameRate="12", backgroundColor="#555555")] public class Main extends Sprite { private const MARGIN:int = 10; private var _output:TextField; private var _url:String; public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(event:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); createOutput(); try { _url = ExternalInterface.call("function(){return document.location.toString()}"); } catch (error:Error) { _output.appendText(error.message); } if (_url) { var loader:URLLoader = new URLLoader(); var request:URLRequest = new URLRequest(_url); loader.addEventListener(Event.COMPLETE, onComplete); loader.load(request); } } private function createOutput():void { _output = new TextField(); _output.width = stage.stageWidth - MARGIN * 2; _output.height = stage.stageHeight - MARGIN * 2; _output.border = true; _output.background = true; _output.wordWrap = true; _output.multiline = true; _output.defaultTextFormat = new TextFormat("_typewriter"); _output.x = _output.y = MARGIN; addChild(_output); } private function onComplete(event:Event):void { _output.text = (event.target as URLLoader).data; } } } |
|
|||||
try { _url = ExternalInterface.call("function(){return document.location.toString()}"); } catch (error:Error) { _output.appendText(error.message); } ?
__________________
...вселенская грусть |
|
|||||
|
Да, так действительно проще.
|
|
|||||
|
Регистрация: Mar 2008
Сообщений: 215
|
Возможно tovarz хочет получить не урл страницы, а ее содержимое? Тогда ему надо смотреть в сторону innerHTML. Будет примерно так:
|
|
|||||
|
strange mood
|
Итого:
Способ 1 Загрузить страницу при помощи URLLoader. Если адрес известен, доступность ExternalInterface не требуется. Получаем код страницы в том виде, в котором он написан. Способ 2 Получить код страницы через ExternalInterface. Для этого он, естественно, должен быть доступен. В этом случае мы получаем не изначальный код страницы, а код существующей иерархии документа. Грубо говоря, если на странице есть скрипт, который в нее что-то дописывает (вставляет баннер например), то в первом случае мы получим изначальную страницу, а во втором - страницу с дописанным куском.
__________________
тонкий тролль, осеянный благодатью |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|