Flash虛線框

轉自:

http://www.blueidea.com/tech/multimedia/2006/4322.asp

http://hi.baidu.com/%CA%A9%CF%B4%D4%BC%BA%B2/blog/item/b4fa3dfafa26752f4f4aea25.html

解決這個問題的方法:
微軟由於種種原因,在 sp2 後限制了 IE 的 ActiveX 的使用模式,就是在頁面中的 ActiveX 有一個虛框,需要用戶點擊一次才能正常交互。Flash是作爲一個 ActiveX 嵌入到網頁中的,所以它也會受牽連,只有通過 JS 嵌入 Flash 才能解決這個問題。

第二個鏈接裏邊提到的第一個方法,已驗證。

自從 MS 爲 Flash 控件專利把 IE 修改後,大家鼠標都要多點一次,這也罷了,但鼠標移過去上面多出個虛線框可着實難看。

爲此各家都想出解決辦法,可以看看 Sina、Sohu、163等

一般都是使用腳本 .write 出來,用的廣的比如 SWFObject 的,前面我說的FLASH圖片輪播、切換效果,仿新浪、CCTV中一個就使用的這個

但使用都比較麻煩

現在介紹個新的 ObjectWrap
ObjectSwap提供的實現只需要在<head>中引入一個腳本。雖然也是使用腳本,但其邏輯是在頁面加載完成後,重寫一次<object>標籤來實現自動激活。頁面中的flash依然是標準的HTML。不需要通過document.write寫入。而且對於禁用js的用戶Flash依然可以正常顯示。這應該算是最unobtrusive的一種實現了。

使用:只要在 head 頭中添加下面代碼,連接這個 ObjectWrap Js,其他就不用管了,加載網頁的時候會自動對頁面中的 object 進行重寫,激活問題就解決了
<script type="text/javascript" src="objectSwap.js"></script>

附件: objectSwap.zip (2007-1-30 11:22, 2.27 K)


dreamweaver公司也推出瞭解決辦法
升級到dreamweaver8.02添加是會加入一個腳本,插入的flash文件就沒有虛線框了
在script目錄下添加一個腳本

script/AC_RunActiveContent.js

我沒有正版的dreamweaver但是在網上找到了dreamweaver8添加的這個腳本

現在添加flash時這樣用

<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<script type="text/javascript">
AC_FL_RunContent( 'codebase',http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0','width','450','height','105','src','snow','quality','high','pluginspage',http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','snow','menu','false' ); //end AC code
</script>
要注意,添加的flash的文件名不能帶擴展名要去掉.swf文件名



附dw8.02的升級地址
http://download.macromedia.com/pub/dreamweaver/updates/dw_8/8_0_2/win/dw8_802_update_cn.exe



附件: 例子.zip (2007-1-30 11:34, 18.43 K)



Macromedia 公司的swfobject腳本解決方案

添加一個外接的swfobject.js文件
<head>
<script type="text/javascript" src="swfobject.js"></script>
</head>
<body>
<div id="flashcontent">
<strong>You need to upgrade your Flash Player</strong>
Javascript turned off will see this. Content here allows you to leave out <code>noscript</code>
不支持flash時顯示的文字
</div>
<script type="text/javascript">
// <![CDATA[

var so = new SWFObject("so_tester.swf", "sotester", "300", "300", "8", "#FF6600");
so.addVariable("flashVarText", "this is passed in via FlashVars for example only"); // this line is optional, but this example uses the variable and displays this text inside the flash movie
so.write("flashcontent");

// ]]>
</script>
</body>

在你的 HTML 頁面頭部區嵌入這個腳本文件:

<script type="text/javascript" src="swfobject.js"></script>


在你的 HTML 中寫一個用來放 Flash 的容器,比如


<div id="flashcontent">
這裏放替換內容,用來在 Flash 無法顯示時顯示。
</div>

使用腳本替換這個內容:

<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "7", "#336699");
//參數意思: 地址,Flash 的 id(不是容器的 id),寬,高,版本需求,背景顏色
//這是最基本的,如果你要高級的設置,就仔細翻翻說明吧。
so.write("flashcontent");
</script> 

這腳本可以寫在 HTML 中也可以寫在外部 .js 文件中。

OK


完整的例子和swfobject.js腳本文件

[ 本帖最後由 hanshen 於 2007-1-30 11:49 編輯 ]



附件: swfobject1-4.zip (2007-1-30 11:42, 39.87 K)



新浪的解決辦法也是插入一個外部鏈接的js腳本

<script type="text/java" src="http://image2.sina.com.cn/home/sinaflash.js"></script>

通過如下腳本在HTML中寫入Flash廣告:
<script type="text/javascript">
var objFlash = new sinaFlash("http://ad4.sina.com.cn/200611/17/73696_gundong.swf", "", "279", "56", "7", "", false,"high");
objFlash.addParam("wmode", "opaque");
objFlash.write("flashcontent_02AE4A");
</script>


附:sinaflash.js腳本文件打包



附件: sinaflash.zip (2007-1-30 12:06, 1.69 K)

一個老外的解決方法

插入ufo.js

附完整例子



附件: ufo3_12.zip (2007-1-30 12:07, 23.26 K)



另類的解決方式(ie7中無效)
//只要在 </body> 後面加上一行
<script src="javascript:'document.body.innerHTML+=''';"></script>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章