在Flash播放器運行時,將不同來源的資源劃分到獨立的沙箱(sandbox)內(nèi),不同沙箱之間不能彼此操作數(shù)據(jù)(除非目標沙箱做過一些設(shè)置,授權(quán)其他沙箱可訪問),這就是Flash的跨沙箱問題。當(dāng)Flash文件(.swf) 和頁面(.html)不在同一個域名下時,如果不經(jīng)過Flash內(nèi)部聲明System.allowDomain,html無法訪問flash定義的接口;不經(jīng)過html設(shè)置allowScriptAccess為’always’,F(xiàn)lash也無法調(diào)用頁面上的js函數(shù)。
那么如果html和flash都設(shè)置了互相可以訪問,是否Flash和html之間就可以互相訪問了呢?理論上是的,然而實際上卻不是。
在Chrome、Firefox等非IE瀏覽器上,是沒有問題的。在“純正”的IE6、IE7、IE8上也是正常的。但是在傲游、360瀏覽器、騰訊瀏覽器等基于IE的多標簽瀏覽器中,刷新頁面的時候,F(xiàn)lash播放器還是會拋安全沙箱錯誤。
點擊訪問測試頁面
使用上面說的“基于IE的多標簽瀏覽器”訪問,你會看到,第一次是正常的,刷新之后就不正常。如果你安裝的是debug版本的播放器,可以看到Flash運行時發(fā)生了異常。
SecurityError: Error #2060: 安全沙箱沖突:ExternalInterface 調(diào)用者 http://pnq.cc/temp/test-dmm-crssdmn.swf 不能訪問 http://q.pnq.cc/works/test/test-dmm-crssmn.html。
at flash.external::ExternalInterface$/_initJS()
at flash.external::ExternalInterface$/call()
at Main/start()
at Main/init()
at Main()
出處:alibaba.com中國站
責(zé)任編輯:bluehearts
上一頁 下一頁 Flash在多標簽瀏覽器中的問題 [2]
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|