Open LiuLiujeng opened 13 years ago
I meet the question in jQuery BlockUI Plugin.I use $(element).block(message) to blocking user interaction in IE, but it returns a exception: WRONG_DOCUMENT_ERR (4). They are not the same document for I execute $(element).block(message) :
$(self.targetWindow.document.body).block('message');
and the BlockUI append DOM Elements(layers) to element:
(line: 228) var lyr1 = ($.browser.msie || opts.forceIframe) ? $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>', doc) : $('<div class="blockUI" style="display:none"></div>'); (line: 277) var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el); $.each(layers, function() { this.appendTo($par); });
It should be gives a document in which the new elements will be created.
add:
(line: 193) var doc = window.document; if(typeof el.ownerDocument != 'undefined') { doc = el.ownerDocument; }
change:
(line: 228) var lyr1 = ($.browser.msie || opts.forceIframe) ? $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>', doc) : $('<div class="blockUI" style="display:none"></div>'); var lyr2 = opts.theme ? $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"> </div>', doc) : $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
to:
var lyr1 = ($.browser.msie || opts.forceIframe) ? $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>', doc) : $('<div class="blockUI" style="display:none"></div>', doc); var lyr2 = opts.theme ? $('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"> </div>', doc) : $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>', doc);
(My English is not very good, forgive me if I don't understand.)
I meet the question in jQuery BlockUI Plugin.I use $(element).block(message) to blocking user interaction in IE, but it returns a exception: WRONG_DOCUMENT_ERR (4). They are not the same document for I execute $(element).block(message) :
and the BlockUI append DOM Elements(layers) to element:
It should be gives a document in which the new elements will be created.
add:
change:
to:
(My English is not very good, forgive me if I don't understand.)