/ / Interrompe todos os jQuery antes de alterar o iFrame - jquery, iframe, permission-denied

Parar todos os jQuery antes de alterar o iFrame - jquery, iframe, permission-denied

Eu tenho um script com um botão anterior e próximo(e outros controles fora do iFrame) que preenche um iFrame com cada clique de botão. Isso funciona muito bem, exceto quando estou desvanecendo imagens dentro de um iFrame e altero o conteúdo enquanto ele ainda está no processo. O problema que tenho é no IE 10 e 11. Parece bem em navegadores não-IE.

Eu limpei o código para simplificar o que está acontecendo. Basicamente, eu apago uma imagem de fora do iFrame como:

var iframe = $("#iframe").contents();
$("#imageFading",iframe).fadeTo(750,1.0);

Eu mudo o conteúdo do iFrame como:

var html = "Some HTML Content here";
var iframe = $("#iFrame").get(0);
iframe = (iframe.contentWindow) ? iframe.contentWindow : (iframe.contentDocument.document) ? iframe.contentDocument.document : iframe.contentDocument;
iframe.document.open();
iframe.document.write(html);
iframe.document.close();

Se o conteúdo do iFrame estiver sendo alterado enquanto a imagem ainda estiver desaparecendo, recebo o erro:

SCRIPT70: Permission denied
File: jquery.min.js, Line: 4, Column: 928

Esse erro mantém a saída no console até que eu atualize ou feche a página. Eu estou usando o jQuery 1.11.2.

Quando eu usei a versão não compactada sua linha 6999, que é:

} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {

Eu tentei colocar o fadeTo em um try / catch e usando o clearQueue () da jQuery.

Respostas:

0 para resposta № 1

Experimentar .stop(true, true) antes de ajustar iframe conteúdo.


0 para resposta № 2

Acabei fazendo isso funcionar usando o jQuery "s Pare função antes de recarregar o iframe.

$("#imageFading",iframe).stop();