2010-07-13 2 views
2

Возможно ли получить URL-адрес страницы во Flash?Как получить URL текущей страницы во Flash

Без использования ExternalInteface.call('window.location')

trace(this.loaderInfo.url) просто вернуть URL, с которого вспышка была загружена.

спасибо.

+1

Что случилось с ExternalInterface.call()? – Macmade

+0

Мы пишем виджет, и мы собираемся предоставить этот виджет клиенту и распространить его с помощью рекламных систем. Чтобы использовать ExternalInterface, клиенты должны использовать allowScriptAccess, а иногда невозможно – aaaauser

ответ

1

Вам необходимо передать его в FlashVars param в HTML код для вставки.

Чтобы сделать это, добавьте следующий JS:

<script language="javascript"> 
    var page_url = document.location.href; 
</script> 

Затем передать эту переменную в Flash:

<script type="text/javascript"> 
    AC_FL_RunContent( 
     'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0', 
     'pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash', 
     'width','550', 
     'height','440', 
     'src','myswffile', 
     'quality','high', 
     'movie','myswffile', 
     'flashvars', page_url 
    ); 
</script> 

Примечание: выше код предполагает, что вы используете AC_RunActiveContent.js Javascript решение при условии от Adobe.

+0

, или вы можете сделать это с помощью swfobject или статического кода для встраивания ... – Roki

+0

Мы не можем этого сделать, мы просто предоставляем нашим пользователям виджет swf и должны быть уверен, что он может получить URL. Без allowcriptaccess и некоторых дополнительных параметров. Мы не знаем, как клиент разместит виджеты на своих сайтах. – aaaauser

+0

Итак, сделайте это виджет JS, вставьте небольшой тег скрипта. Затем динамически загружайте AC_RunActiveContent.js или swfobject или static embed (document.write) и передайте document.location.href в качестве flashvar. –

0

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

var bm:IBrowserManager = BrowserManager.getInstance(); 
bm.init(); 
trace(bm.url); 
+0

Я сомневаюсь, что op работает с использованием flex ... – loxxy

+0

Я не мог понять ... вы спрашиваете, можно ли его использовать в flex? если это так, ответ можно использовать в flex –

+0

Я имел в виду, что он может использоваться только в flex ... & вопрос, похоже, не использует flex. – loxxy

Смежные вопросы