Как получить домен страницы, которая загружает мой SWF, когда у меня нет доступа к сценарию? - PullRequest
2 голосов
/ 22 октября 2010

Мне нужен мой swf, чтобы видеть домен страницы, на которой он загружен.Обычно для этого я просто смотрю на window.location поверх ExternalInterface, но в данном конкретном случае swf будет встроен с allowcriptaccess = "never", так что это не будет работать.Есть ли настоящий API, который даст мне это, или я должен прибегнуть к уродливым хакерам?

Ответы [ 4 ]

2 голосов
/ 11 декабря 2013

Actionscript 3 на самом деле имеет свойство, которое вы можете запросить прямо, в flash.system.Security (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Security.html#pageDomain), примерно так:

import flash.system.Security;
...
var domain:String = Security.pageDomain;

Это даст вам "[t] доменчасть страницы HTML, содержащая swf. "

0 голосов
/ 22 октября 2010
loaderInfo.loaderURL
0 голосов
/ 07 декабря 2010

Оказывается, что нет прямого способа сделать это. Однако вы можете сделать следующее:

  1. Путь к SWF-файлу идет к скрипту на вашем сервере
  2. Пусть этот скрипт прочитает заголовок referer [sic] и 302 на статическом файловом сервере, где находится файл swf, поместив значение referer в переменную get
  3. Разбор URL (полученный из loaderInfo.url) и извлечение добавленной вами переменной.

Чтобы предотвратить подделку этого значения (люди, которые напрямую связываются со статическим файловым сервером, пропускают перенаправление), вам нужно, чтобы ваш статический файловый сервер проверял, что значение переменной get совпадает со значением заголовок реферера перед передачей файла (что, я знаю, вы можете сделать в nginx).

0 голосов
/ 22 октября 2010

Вы пробовали это:

var pageURL:String = stage.loaderInfo.url;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...