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>