javascript - 如何检测不呈现 .png 透明度的浏览器

标签 javascript png rendering browser-detection alpha-transparency

我有这段代码可以根据星期几渲染图像。但在 IE6 及更低版本以及其他一些浏览器中,它不会呈现 png 不透明度。所以我想稍微改变一下,以便它会检测到不呈现 alpha 透明度的浏览器,并告诉他们改为加载此图像:“img/horarios2.png”。我试过制作它以排除 IE6 和更低版本的不渲染,但后来我想到所有其他我可能不知道的浏览器也不会渲染并且需要一些可以统治它们的东西出也。我不知道完成此任务的最佳方法,因此我愿意接受所有建议。

$(document).ready (function horario () {
var date = new Date();
var weekday = (date.getDay());

if (weekday==0)
    document.getElementById('horarios').src = "img/domingo.png";
else if (weekday==4)
    document.getElementById('horarios').src = "img/quinta.png";
else if (weekday==5)
    document.getElementById('horarios').src = "img/sexta.png";
else if (weekday==6)
    document.getElementById('horarios').src = "img/sabado.png";
else 
    document.getElementById('horarios').src = "img/quarta.png";
});

最佳答案

我对这个问题做了相当多的研究,得出的结论是用 JavaScript 创建功能测试是不可行的,IE 6 是唯一不支持的认真使用的浏览器PNG透明度。既然如此,您最好的选择是条件注释,正如 Gabriel Ross 所推荐的那样。可以在纯 JavaScript 中使用条件注释,我认为这就是您想要的:

var div = document.createElement("div");
div.innerHTML = "<!--[if lte IE 6]><i></i><![endif]-->";
var isIe6orLower = (div.getElementsByTagName("i").length == 1);

alert("Is IE 6 or lower: " + isIe6orLower);

2012 年 6 月 17 日更新

注意 IE 10 will not support conditional comments ,所以这种方法在未来的 IE 版本中将不起作用。

关于javascript - 如何检测不呈现 .png 透明度的浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7015980/

相关文章:

javascript - 基于滚动显示图像的新部分

Javascript lerp 函数没有给出准确的答案

javascript - 如何使用 progressBar.js 在特定路径上放置渐变?

c# - 检测 PNG 图像文件是否为透明图像?

c++ - 如何将屏幕截图写入 PNG?

android - 查看 "Force GPU-Rendering"是否启用

php - 将数据从 PHP 直接传递到 DOM 变量

asp.net - PNG 覆盖使 asp 超链接不可点击

三.js-渲染警告: Render count or primcount is 0

java - 在 raytracer 中使用 SVG 文件作为纹理