Javascript:如何延迟返回img.complete的值
我已经编写了一个脚本来测试IMG标记中的SVG支持:Javascript:如何延迟返回img.complete的值,javascript,svg,browser-feature-detection,Javascript,Svg,Browser Feature Detection,我已经编写了一个脚本来测试IMG标记中的SVG支持: function SVGinIMG() { var SVGdata = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D' var i = document.createElement('img'); i.setAttribute(
function SVGinIMG() {
var SVGdata = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D'
var i = document.createElement('img');
i.setAttribute('src',SVGdata);
return i.complete;
}
window.onload = function() {
var hasSVG = SVGinIMG();
alert(hasSVG);
}
这就是我想要的,只是当我在WebKit浏览器中运行脚本时,complete属性不会在我第一次加载页面时触发;当我刷新页面时,它会正常工作。返回功能在img完成加载之前运行;推迟这一进程的最佳方法是什么?我把事情弄得有点复杂;我真正需要的是加载事件:
当图像加载时,它会运行另一个功能,这在不支持图像中SVG的浏览器中是绝对不会出现的。这里有一个与您的脚本类似的脚本,可能会作为灵感:哈!这是我的剧本灵感的一部分,但我觉得它有点太复杂了。不过还是要感谢你的链接,我会仔细研究一下。我不太喜欢这个版本,因为它需要回调,而不仅仅是返回真/假。无论如何,谢谢你原来的“问题”!有什么好处?
function SVGDetect() {
var testImg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNzUiIGhlaWdodD0iMjc1Ij48L3N2Zz4%3D';
var img = document.createElement('img')
img.setAttribute('src',testImg);
img.addEventListener('load',setCSS,true);
}