来自codepan的JS在代码扩展之外的任何地方都不起作用

时间:2017-03-17 11:52:57

标签: javascript html css

当我在IE 10或11中的代码中打开它时,此代码有效,但当我尝试在jsfiddle或IE 10或11中的任何地方执行相同操作时,它不起作用。我已经尝试过复制/粘贴并导出为存档,那有什么不对?

codepan

jsfiddle



if ('objectFit' in document.documentElement.style === false) {
	document.addEventListener('DOMContentLoaded', function () {
		Array.prototype.forEach.call(document.querySelectorAll('img[data-object-fit]'), function (image) {
			(image.runtimeStyle || image.style).background = 'url("' + image.src + '") no-repeat 50%/' + (image.currentStyle ? image.currentStyle['object-fit'] : image.getAttribute('data-object-fit'));

			image.src = 'data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'' + image.width + '\' height=\'' + image.height + '\'%3E%3C/svg%3E';
		});
	});
}

img {
	box-shadow: 0 0 0 1px;
	height: 200px;
	width: 200px;
}

img[data-object-fit="contain"] {
	object-fit: contain;
}

img[data-object-fit="cover"] {
	object-fit: cover;
}

<img src="https://placehold.it/1080x200" data-object-fit="cover">

<img src="https://placehold.it/1080x200" data-object-fit="contain">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

Codepan刚刚触发&#39; DOMContentLoaded&#39;运行你的代码的事件,但jsFiddle没有。检查document.readyState

yay

https://codepen.io/anon/pen/Rpjedb

答案 1 :(得分:0)

Anton Chukanov,你的想法是正确的,有点我发现在jsfiddle我可以选择加载js的类型,所以默认类型是“onLoad”,当我选择“没有换身体”或“没有换行 - 在头部“它开始正常工作。所以我认为更改负载类型比代码更容易。 谢谢所有参与此问题的人!