Pergunta

Eu tenho uma página com um formulário de pesquisa.Quando você visita a página pela primeira vez, tenho um disparo jQuery(document).ready():

jQuery(document).ready(
  function () {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

Agora, quando você envia o formulário e clica no botão Voltar, o document.ready não é acionado, e é necessário.

O problema original estava apenas no Firefox, mas depois de algumas pesquisas descobri que adicionar um evento unload ao corpo resolveu isso:

jQuery(window).unload(function(){});

Disseram-me que não funciona no IE11.

Alguém tem alguma dica para fazer com que a função document.ready seja acionada no IE11?

Foi útil?

Solução

Então, eu tropecei esta resposta na minha busca, enterrado no final do post.

Eu tentei e funcionou:

// break the bfcache (ie11 and all others likely)
jQuery(window).focus(
  function() {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

Deixei o código original intacto, porque no meu caso estou apenas definindo um carimbo de data/hora unix e está tudo bem se isso acontecer várias vezes.

Resposta completa:

jQuery(document).ready(
  function () {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

jQuery(window).unload(function(){});

jQuery(window).focus(
  function() {
    jQuery("#new_search").val(Math.round(new Date().getTime() / 1000));
  }
);

Outras dicas

Para qualquer outra pessoa que fixa nesse problema, aqui é um artigo do MSDN documentando como parar o comportamento de cache para trás / avançado do IE11: https://msdn.microsoft.com/library/dn265017 (v= vs.85) .aspx .De acordo com isso, adicionar um manipulador de eventos de beforload para ele.Isso também funciona no Firefox: https://developer.mozilla.org/en-us/docs/using_firefox_1.5_caching .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top