2

我試圖獲取Flash播放器所在的當前URL。不是.swf文件的URL,而是瀏覽器指向的URL。到目前爲止我用:使用ExternalInterface和IE從Flash獲取Flash中的當前URL

var st:String = ExternalInterface.call("window.location.href"); 

不幸的是,這並不在IE瀏覽器。從我的研究中,我可以看出它無論如何都不適用於IE。

我在互聯網上發現的唯一另外一件事是在標籤上放一個'id'標籤。

所以我試圖找出是否和/或如何,我可以:

  1. 使用ExternalInterface在IE和其他瀏覽器 返回到我目前的 URL不知怎的,撥打電話。

    OR

  2. 摑一個id = 「PA」 的標籤屬性,並有AS3讀取標籤 和使用JavaScript

把它作爲一個字符串,沒有

我的限制是我只能將標籤添加到HTML中,並且不能添加任何JavaScript函數。這必須嚴格在AS3中完成。

無論哪種方式,我需要知道我在哪個網址。任何幫助是極大的讚賞。

回答

0

只是一個建議:

這可能是因爲IE瀏覽器,出於某種原因,決定window.location.href can be used as a function。這是微軟的,但那是你的微軟。

您是否嘗試過ExternalInterface.call(「String」,「window.location.href」)?這將是我的下一個猜測。

+0

克里斯托弗,好點約IE如何看待HREF。我嘗試了你的方法,不幸的是,ActionScript只是返回「window.location.href.toString」作爲字符串。 :( –

0
ExternalInterface.call('window.location.href.toString'); 
+0

這是我的第一次嘗試Firefox的偉大的工程...但仍然沒有IE瀏覽器 –

+0

這很奇怪,我在IE6中測試它,它工作得很好,我沒有IE7或IE8可用在這臺機器上,雖然,你用IE7或IE8? – JStriedl

+0

是的,不幸的是IE7/8是我最大的擔憂,謝謝! –

-1

你有沒有想過在沒有外部呼叫的情況下實現你想要的功能。

var domain:String = loaderInfo.loaderURL; 
trace(domain.substr(0, domain.indexOf("/", 8))); //Searches for first instance of "/" after the 8th character. 

上面我們使用indexOf來描述基礎域,從完整路徑創建一個子字符串到swf。我們在第8個字符之後搜索「/」的第一個實例以返回子字符串的結束點。我們使用8個字符的原因是允許使用http://和https://;我們不需要看到那些第一個「/」的。我測試了這個,它工作得很好。

ExternalInterface調用沒有任何問題,但我傾向於在需要時保存它們。

+0

布賴恩,的確如此。不幸的是,有多個不同大小的子域,如aaaaa-bbbb-ccc或abc.xyz.com ..等等,所以數它們是行不通的。爲了您的信用,我一直在使用RegEx,它一直在幫助。非常感謝。 –

+0

你是什麼意思?「計數它們不起作用。」?無論如何嵌套子域可能是,http://或https://之後的第一個「/」應該是.com或.net等給予我們正確路徑之後的東西。 –

+0

這會獲得實際swf本身的URL而不是URL它已裝上。 –

5

您需要一些東西才能使其在IE中工作。首先的ActionScript:

var domain:String = ExternalInterface.call('function() { return window.location.href; }'); 

其次,你需要在<object>標籤有效的classid和id atributes:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="myplayer_123123" ...> 

如果你不把這些屬性,ExternalInterface.call總是在IE6/7/8中返回null,但在Firefox中按預期工作。

第三,您需要將參數allowScriptAccess設置爲'always',以便啓用ExternalInterface。

<param name='allowScriptAccess' value='always'/> 
.. 
<embed allowscriptaccess='always' ...> 

.....

+0

我會哈我試過這個。謝謝! –

+0

太棒了!這工作。謝謝。 – fernyb

+1

這應該是被接受的答案。這只是在一個Wordpress/Flash應用程序集成的非常緊迫的截止日期前節省了我的屁股,這讓我瘋狂。再次感謝。 –

相關問題