各位在设计、制作或者处理自己的blog的时候会遇到插入flash文件,自己在IE打开这个页面后,flash上面会浮现一个虚框,需要点击一次后才可以操作。程序繁琐,不免让喜欢简单的朋友觉得复杂。另外虚框也影响了网页的整体美观性和体验性。
这里分享一段代码,只要在网页中插入,所有swf文件的虚框将会消失,是不是很得意呢?哈哈,代码如下:
将其保存为flash_no.js,在你需要的前台页面head中加入:
<head>
…
<script type="text/javascript" src="script/flash_no.js"></script>
</head>
flash_no.js:
/**
* @author [cengis]Mihawk
* @version v1.0
* Date:2007-6-21
*/
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 stripQueue = [];
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();
}
原文地址:http://yourxin.com/blog/article.asp?id=46
相关文章
暂无评论...