Flash 要抓取目前此頁面的網址, 要如何做?
註: Flash + HTML 如何寫才能抓到目前頁面網址.
Flash 抓取目前頁面網址 的 寫法
Flash 要抓取目前頁面的網址, 需要靠 JavaScript 抓取才行, 所以寫法如下述:
-
import flash.external.ExternalInterface;
-
var pageURL = ExternalInterface.call('window.location.href.toString');
-
// 註: pageURL 就是現在的頁面網址
完整範例
-
on (release) {
-
import flash.external.ExternalInterface;
-
var pageURL = ExternalInterface.call('window.location.href.toString');
-
getURL("http://example.com/?current_page_url=" + escape(pageURL), "_blank");
-
}
Flash 抓取目前網址 的 SWF 放入網頁
把產生出來的 swf 去試跑看看, HTML 如下述:
<embed src="http://example.com/test.swf" width="100" height="100"></embed>
發現
只有 Firefox 可以抓到目前頁面的網址, Chrome 和 IE 都抓不到.
於是對 embed 加點工, 改成下述:
<embed allowscriptaccess="always" src="http://example.com/test.swf" width="100" height="100"></embed>
發現
Firefox 和 Chrome 可以抓到目前頁面的網址, 但是 IE 都還是抓不到.
於是研究 OBJECT 與 EMBED 的寫法差別, 詳可見:
Flash / HTML Object 標籤的 classid 如何寫?
要讓 IE 抓到目前頁面網址, 需要用
OBJECT + Param "allowScriptAccess always" + id (id 可以隨意指定一個唯一值).
總結
IE 需要
- <object id="random123"></object>
- <param name="allowScriptAccess" value="always">
Firefox、Chrome 需要
- <embed allowscriptaccess="always" src="..."></embed>
完整 嵌入 Flash 的 HTML 範例如下:
-
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" id="example01">
-
<param name="movie" value="http://example.com/test.swf"/>
-
<param name="allowScriptAccess" value="always">
-
<embed allowscriptaccess="always" src="http://example.com/test.swf" width="100" height="100"></embed>
-
</object>
註: 上述為最精簡的寫法, 需要 codebase 或其它參數, 請在自行補上.
以上 Flash + HTML 搭配起來, 在 IE、Chrome、FireFox 就都可以抓到目前網址囉~
轉載網站