Javascript 如何检测浏览器中是否禁用了图像?
可能重复:Javascript 如何检测浏览器中是否禁用了图像?,javascript,Javascript,可能重复: 检测用户是否在关闭图像的情况下浏览并在头部添加另一个样式表的最简单方法是什么 是否有一个简短的javascript代码段可以实现这一功能,并且浏览器支持良好?这是我的解决方案: <script type="text/javascript"> detectImageEnabledMode({ onDetectImageIsDisabled:function(){ alert('disabled'); },
检测用户是否在关闭图像的情况下浏览并在头部添加另一个样式表的最简单方法是什么 是否有一个简短的javascript代码段可以实现这一功能,并且浏览器支持良好?这是我的解决方案:
<script type="text/javascript">
detectImageEnabledMode({
onDetectImageIsDisabled:function(){
alert('disabled');
},
onDetectImageIsEnabled:function(){
alert('enabled');
}
});
function detectImageEnabledMode(options){
/* define disabled/enabled actions */
var actionCounter = 0;
var enabledAction = (options.onDetectImageIsEnabled && typeof(options.onDetectImageIsEnabled)=='function')?options.onDetectImageIsEnabled:function(){};
var enaledActionRun = function(){
if(actionCounter) return;
actionCounter++;
enabledAction();
}
var disabledAction = (options.onDetectImageIsDisabled && typeof(options.onDetectImageIsDisabled)=='function')?options.onDetectImageIsDisabled:function(){};
var disabledActionRun = function(){
if(actionCounter) return;
actionCounter++;
disabledAction();
}
/* create image */
var img = new Image();
var currentTime = (new Date()).getTime();
if(navigator.appName.indexOf('Microsoft Internet Explorer') != -1){// ie
img.onload = enaledActionRun;
img.onabort = enaledActionRun;
img.onerror = enaledActionRun;
img.src = currentTime+'.'+currentTime+'?time='+currentTime;
setTimeout(function(){
disabledActionRun();
}, 0);
}else if (navigator.appName.indexOf('Opera') != -1) {// opera
img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="+'?time='+(new Date()).getTime();
if(img.complete){
enaledActionRun();
}else{
disabledActionRun();
}
}else{// other
img.src = currentTime+'.'+currentTime+'?time='+currentTime;
if(img.complete){
disabledActionRun();
}else{
enaledActionRun();
}
}
}
// tested in: ff 2+, opera 9+, chrome, safari 4+, ie 6+
</script>
非常感谢。旁边的问题:那我最好删除这篇文章吗?重复的问题并不都是坏事。当有疑问时,可以通过“此问题作为[链接]的副本关闭”的方式,将一个问题的多个词语“指向”一个规范答案,或者标记为♦ 主持人请注意您的关注。
setTimeout(function(){
disabledActionRun();
}, 0);