去掉flash虚线框
我们知道在以前Flash动画虚线框是不存在的,那么为什么最近会出现这个现象呢?原来微软考虑到IE浏览器的安全性问题,针对IE发布了一项更新补丁,禁止了IE浏览器的ActiveX控件自动激活功能。这样就造成了本来可以直接点的Flash,现在要先多点一下这个虚线框来激活了。
去掉虚线框
既然能加的上去,就一定能去的掉。首先在网页代码之间插入如下代码:
<SCRIPT src="objectSwap.js" type=text/javascript> </SCRIPT>
这样网页在加载的时候会自动对页面中的 object 标签进行重写,实现自动激活。
上面说的方法是外部JS调用法,其实我们熟悉常用的Dreamweaver最新版8.02版也给出了这个问题的解决方法。大家把Dreamweaver升级到8.02版后,再插入Flash文件时,会加入一个脚本来解决这个问题。
一下是js文件
var ie = (document.defaultCharset && document.getElementById && !window.home);
var opera9 = false;
if (ie){
var ver=navigator.appVersion.split("MSIE")
ver=parseFloat(ver[1])
ie = (ver >=6)
}else if (navigator.userAgent.indexOf("Opera")!=-1) {
var versionindex=navigator.userAgent.indexOf("Opera")+6
if (parseInt(navigator.userAgent.charAt(versionindex))>=9)
opera9 = true;
}
var oswap = (ie || opera9)
if (oswap){
document.write ("<style id='hideObject'> object{display:none;} </style>");
}
objectSwap = function(){
if (!document.getElementsByTagName){
return;
}
var objects = document.getElementsByTagName('object');
for (var i=0; i<objects.length; i++){
var o = objects[i];
var h = o.outerHTML;
var params = "";
var hasFlash = true;
for (var j = 0; j<o.childNodes.length; j++) {
var p = o.childNodes[j];
if (p.tagName == "PARAM"){
if (p.name == "flashVersion"){
hasFlash = detectFlash(p.value);
if (!hasFlash){
o.id = (o.id == "") ? ("stripFlash"+i) : o.id;
stripQueue.push(o.id);
break;
}
}
params += p.outerHTML;
}
}
if (!hasFlash){
continue;
}
if (!oswap){
continue;
}
if (o.className.toLowerCase().indexOf ("noswap") != -1){
continue;
}
var tag = h.split(">")[0] + ">";
var newObject = tag + params + o.innerHTML + " </OBJECT>";
o.outerHTML = newObject;
}
if (stripQueue.length) {
stripFlash(stripQueue)
}
if (oswap){
document.getElementById("hideObject").disabled = true;
}
}
detectFlash = function(version){
if(navigator.plugins && navigator.plugins.length){
var plugin = navigator.plugins["Shockwave Flash"];
if (plugin == undefined){
return false;
}
var ver = navigator.plugins["Shockwave Flash"].description.split(" ")[2];
return (Number(ver) >= Number(version))
} else if (ie && typeof (ActiveXObject) == "function"){
try{
var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + version);
return true;
}
catch(e){
return false;
}
}
return true;
}
stripFlash = function (stripQueue){
if (!document.createElement){
return;
}
for (var i=0; i<stripQueue.length; i++){
var o = document.getElementById(stripQueue[i]);
var newHTML = o.innerHTML;
newHTML = newHTML.replace(/<!--\s/g, "");
newHTML = newHTML.replace(/\s-->/g, "");
newHTML = newHTML.replace(/<embed/gi, "<span");
var d = document.createElement("div");
d.innerHTML = newHTML;
d.className = o.className;
d.id = o.id;
o.parentNode.replaceChild(d, o);}
}
var tempFunc = window.onload;
window.onload = function(){
if (typeof (tempFunc) == "function"){
try{
tempFunc();
} catch(e){}
}
objectSwap();
}