亚洲一区二区在线观看你懂-中文字幕黄色在线观看-黄色av88小说在线观看-蜜臀av一区二区三区精品人妻

技術(shù)中心

這里象征著我們的態(tài)度和能力

Flash在某些多標(biāo)簽瀏覽器中的“偽沙箱”問題
作者:qhwa    來源:www.aliued.cn    發(fā)布時(shí)間:2010-11-01      瀏覽次數(shù):9912
分享到:

    在Flash播放器運(yùn)行時(shí),將不同來源的資源劃分到獨(dú)立的沙箱(sandbox)內(nèi),不同沙箱之間不能彼此操作數(shù)據(jù)(除非目標(biāo)沙箱做過一些設(shè)置,授權(quán)其他沙箱可訪問),這就是Flash的跨沙箱問題。當(dāng)Flash文件(.swf) 和頁面(.html)不在同一個(gè)域名下時(shí),如果不經(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之間就可以互相訪問了呢?理論上是的,然而實(shí)際上卻不是。

    在Chrome、Firefox等非IE瀏覽器上,是沒有問題的。在“純正”的IE6、IE7、IE8上也是正常的。但是在傲游、360瀏覽器、騰訊瀏覽器等基于IE的多標(biāo)簽瀏覽器中,刷新頁面的時(shí)候,F(xiàn)lash播放器還是會(huì)拋安全沙箱錯(cuò)誤。

    點(diǎn)擊訪問測試頁面。

    使用上面說的“基于IE的多標(biāo)簽瀏覽器”訪問,你會(huì)看到,第一次是正常的,刷新之后就不正常。如果你安裝的是debug版本的播放器,可以看到Flash運(yùn)行時(shí)發(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()

Flash的源碼:

package
{
	import flash.display.Sprite;
	import flash.external.ExternalInterface;
	import flash.system.Security;
	import flash.text.TextField;

	/**
	 * Flash緩存造成的偽沙箱問題演示
	 * @author qhwa
	 */
	public class Main extends Sprite
	{

		public function Main():void
		{
			var tf:TextField = new TextField();
			tf.text = flash ready;
			tf.autoSize = left;
			addChild(tf);

			//允許被所有其他沙箱中的js或flash調(diào)用
			Security.allowDomain("*");

			start();
		}

		private function start():void
		{
			//在基于IE的多標(biāo)簽瀏覽器中,這里運(yùn)行時(shí)可能出錯(cuò)
			ExternalInterface.call("alert", "Hi, flash is ready!");
			ExternalInterface.addCallback(drawCircle, drawCircle);
		}

		private function drawCircle():void
		{
			TextField(getChildAt(0)).appendText(
Draw a circle);

			graphics.beginFill(Math.random() * 0xFFFFFF, .5);
			graphics.drawCircle(
				Math.random() * stage.stageWidth,
				Math.random() * stage.stageHeight,
				50);
			graphics.endFill();
		}

	}

}

    似乎一旦swf是從緩存中讀取的,allowScriptAccess這個(gè)配置就不起作用?為了驗(yàn)證是不是緩存引起的,我們每次為swf文件地址后面加上隨機(jī)的數(shù)字,發(fā)現(xiàn)就不存在上面的問題了??梢娺@個(gè)問題確實(shí)是瀏覽器緩存造成的。

    為swf文件動(dòng)態(tài)加時(shí)間戳或隨機(jī)數(shù),通過防止緩存可以回避掉這個(gè)問題。不過這不是一個(gè)很好的方案,因?yàn)檫@會(huì)極大增加服務(wù)器的壓力,并且導(dǎo)致頁面加載速度一直都很慢。

    不過好消息是,目前有個(gè)比這個(gè)更好的方案:延遲Flash的初始化功能。通過將Flash的ExternalInterface.addCallback時(shí)機(jī)延后一些,就可以解決這個(gè)問題。

    修改一下Flash的代碼,加一個(gè)setTimeout:

	...(略)
	public class Main extends Sprite
	{

		public function Main():void
		{
			...(略)
			//start();
			setTimeout(start, 500);
		}

		...(略)

	}

}

    測試修改后的效果

    那么,延遲多少比較合適呢?如果太多,用戶會(huì)感覺到明顯的延遲;太少,一些性能較差的電腦上問題依然存在。根據(jù)我一年多總結(jié)的經(jīng)驗(yàn),500ms是比較合理的數(shù)字。目前阿里巴巴中國網(wǎng)站上使用的Flash應(yīng)用程序,如果有需要和js通信,都是延遲500ms初始化。

    順便說一下,延遲500ms還有另外的一個(gè)作用。IE6中,F(xiàn)lash初始化的時(shí)候無法得到 stage.stageWidth正確的數(shù)字,返回是0(stageHeight也一樣)。延遲一點(diǎn)初始化就可以得到正確的數(shù)值了。

4000-880-989
(24小時(shí)熱線)
聯(lián)系客服
微信公眾號(hào)

官方公眾號(hào)

小程序

?2008-2022 CORPORATION ALL Rights Reserved. 昆明奧遠(yuǎn)科技有限公司版權(quán)所有 滇ICP備09003328號(hào)-1 滇公網(wǎng)安備 53011102000818號(hào) 增值電信業(yè)務(wù)經(jīng)營許可證號(hào):滇B2-20110045
昆明那家網(wǎng)絡(luò)公司好,新媒體運(yùn)營,網(wǎng)站優(yōu)化,網(wǎng)絡(luò)推廣,網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站推廣,云南網(wǎng)站公司,昆明新媒體公司,云南網(wǎng)紅主播,昆明SEO公司,昆明網(wǎng)站建設(shè),昆明網(wǎng)絡(luò)推廣,昆明網(wǎng)站優(yōu)化,昆明網(wǎng)站推廣,紅河網(wǎng)站建設(shè),大理網(wǎng)絡(luò)公司,曲靖網(wǎng)絡(luò)公司,麗江網(wǎng)站設(shè)計(jì),昭通網(wǎng)絡(luò)公司,保山大數(shù)據(jù)服務(wù),智慧高速建設(shè),智慧校園服務(wù),云南IDC服務(wù)商,網(wǎng)絡(luò)安全測評(píng),等保測評(píng),網(wǎng)站關(guān)鍵詞排名優(yōu)化服務(wù),服務(wù)客戶盡超2000余家,一切盡在奧遠(yuǎn)科技,服務(wù)電話:13888956730
午夜性无码视频在线播放| 91热国产在线观看| 久久久久有精品国产麻豆| 国产成人亚洲精品在线看| 好想大鸡巴插进阴道视频| 大屁股真人日逼视频| 啊啊啊啊大鸡巴操我视频| 日本免费一区二区在线| 成人 在线 欧美 日韩| 内射后入在线观看一区| 日逼动态视频免费看| 日本亚欧乱色视频69室| 插女人下面高潮视频| 亚洲二亚洲欧美一区vr| 久久久国产了楼凤| 狠狠色伊人亚洲综合成人| 综合伊人久久在一二三区| 加勒比在线不卡一区二区观看| 2021国产一区二区岛国| 骚逼被狂插视频教程| 男人添女人下面免費视頻| 国产精品碰碰现在自| 女人被男人操到高潮视频| 欲色欲香天天网综合久久| 激情久久久久久久久久久| 中国老女人 操逼 视频| 中文字幕乱码一区三区免费| 国产 欧美 日韩 黄片| 日韩欧美中文字幕国产精品| 欧美高清一二三区| 瓯美在线免费视频笫一区第二区 | 三级片成人京东热五月天| 国产成人AV剧情| 大鸡巴日小美女明星的BB| 欧美黑屌操B内射冒白浆| 高颜值美女视频在线观看| 日本中文字幕无人区一区二区| 国产高清乱码女大生AV| 男人草女人的视频免费看| 嗯嗯嗯啊啊啊好湿好痒好多水视频| 鸡巴抽插逼逼视频|