Flash 如何抓取目前網頁的網址

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  就都可以抓到目前網址囉~

相關網頁



This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Programming 並標籤為 。將永久鏈結加入書籤。

Flash 如何抓取目前網頁的網址 有 4 則回應

  1. 小正正 說道:

    讚哦~ 宗豪最近都在研究 Flash ?!

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *


9 + 五 =

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>