0
我想在默认情况下加载一个PNG图标,以支持无法可靠处理JS的旧设备。但是,如果您在现代浏览器或设备上查看,则应该看到该图标的svg版本。我在头上运行以下代码。默认加载PNG,如果能够升级到SVG
window.onload = function() {
var i, elements = document.getElementsByTagName('img');
for (var i = 0; i < elements.length; i++) {
var filetype = elements[i].getAttribute('src').split("."),
extention = filetype.pop();
if(extention.toLowerCase() == 'png'){
var hasSVGAttribute = elements[i].getAttribute('data-svg-enhance');
if (hasSVGAttribute !== null) {
elements[i].src = hasSVGAttribute;
elements[i].removeAttribute('data-svg-enhance');
} else {
elements[i].src = filetype.join('.')+'.svg';
}
}
};
}
这是我修改后的图像标签的样子:
<img src="img/png/home.png" data-svg-enhance="img/svg/home.svg" alt="Home">
全部是低端设备良好。它会加载PNG,根本不会打扰svg。问题在于支持所有技术的iPhone等高端设备。该脚本可以工作,但它会默认加载png,所以我现在加载了png和svg,这是非常低效的。
我不知道如何选择一个或另一个。
您需要来检测SVG图像支持**设定'src'。根据当前浏览器是否支持它,您可以适当地设置“src”。 – Ian
是的,但是如果没有JS,人们会如何检测。默认情况下必须设置src,所以不支持JS的旧设备仍然会显示相应的png图像。 – AfricanMatt
谁说你需要检测它没有JS?在JS中,或者使用特定的'src'动态添加图像,或者找到元素(如'id'或'class')并设置它的'src'(也许显示它,默认情况下是隐藏的) – Ian