谁能解释一下这是怎么回事?以下网页显示了在 Safari 和 Chrome(早于版本 32,周二发布)中加载时的 jpg 的三个副本。在新版 Chrome 上,它仅显示前两张图像;第三个永远不会被加载,回调也永远不会触发。
(编辑:虽然这里的问题很简单,但说这是一个简单的拼写错误不太公平。许多浏览器支持“img”作为“image”标签的允许同义词,Chrome 撤回了支持这样的页面以前可以正常工作的系统突然失败了,而且没有提供有用的错误报告。其他人可能会发现这些知识很有用。)
示例 HTML
<!DOCTYPE html>
<html>
<head><title>My Title></title></head>
<body>
<script>
document.addEventListener('DOMContentLoaded', initialize);
function initialize() {
var imageURL = document.getElementById("img1").src;
console.log(imageURL);
var img2 = document.getElementById("img2");
img2.onload = function(){console.log("loaded image 2");};
img2.src = imageURL;
var img3 = document.createElement("image");
var container = document.getElementById("container");
container.appendChild(img3);
img3.onload = function(){
// never fires in Chrome version 32
console.log("loaded image 3");};
img3.src = imageURL;
}
</script>
Image loaded from absolute URL<br>
<img id="img1" src="http://www.rakkup.com/wp-content/uploads/2012/03/rakkup-logo-for-website.png"></img>
<br>
Image created in HTML and src is set programmatically<br>
<img id="img2"><img>
<br>
<div id="container">
Image created in JavaScript and src is set programmatically<br>
Loads in Safari and Chrome before version 32, but not in Chrome 32<br>
</div>
</body>
最佳答案
您需要将 document.createElement("image")
更改为 document.createElement("img")
。
某些浏览器(例如 safari)允许将 image
作为 img
的同义词。
但由于它是非官方的,它不会在任何地方都有效。
关于javascript - 以编程方式创建图像时,Chrome 版本 32 (Mac) 停止从 src 加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222677/