Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:如何延迟返回img.complete的值_Javascript_Svg_Browser Feature Detection - Fatal编程技术网

Javascript:如何延迟返回img.complete的值

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(

我已经编写了一个脚本来测试IMG标记中的SVG支持:

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);
}