[英]adding an image to the dom and performing .load
好的,所以這很奇怪。 以下代碼適用於所有瀏覽器,但IE9在開發人員工具中將其轉換為IE8時除外。
var img = $('<img/>').load(function (e) {
$('.md').append(e.target);
}).attr({ 'id': 'imgprofile', 'src': "http://upload.wikimedia.org/wikipedia/commons/thumb/2/28/HelloWorld.svg/512px-HelloWorld.svg.png", 'style': 'border:2px solid #a8a7a7;' });
這是一個例子: http : //jsfiddle.net/RZeY5/5/
正如你所看到的,當.load事件完成(僅在IE8模式下)而不是將圖像添加到dom時,會發生一些事情並且整個屏幕變為白色(在jsfiddle示例中,iframe變為白色)。
花了幾個小時的時間試圖理解我的代碼有什么問題(這是一個非常長的JS文件....)我設法把它歸結為$('.md').append(e.target);
我不知道現在要做什么......這是我的錯嗎? 這是JQuery的錯嗎? 是IE8故障嗎? 我該怎么做才能解決這個問題?
請注意,您必須處於IE8模式才能發生'bug'。
編輯**我只是在IE7模式下發生...
在那些IE中,無論如何e.target === document
和e.target
都不合適,你應該使用e.currentTarget
或者this
。
那些較舊的IE使用srcElement
,在這種情況下恰好為null
,jQuery在這種情況下將其分配給document
。
// Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
if ( !event.target ) {
event.target = originalEvent.srcElement || document;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.