Eu resolvi um caso em que o referenciador é perdido em vários métodos de salto de página. É mencionado que no IE, quando uma página é redirecionada usando um método como localização.href = "a.html", o valor do documento.Referrer na página de destino estará vazio. Isso deve ser um bug no IE.
Na maioria dos casos, esse problema não nos causa problemas, mas às vezes precisamos usar o JavaScript para pular e, ao mesmo tempo, temos que coletar documentos.
Forma de obter método
A primeira coisa que vem à mente é usar o formulário para iniciar uma solicitação GET usando JS. O código se parece com o seguinte:
A cópia do código é a seguinte:
função gotapage (url) {
if (isie) {
// ou seja, navegador
var frm = document.createElement ("forma");
frm.Action = URL;
frm.method = "get";
document.body.appendChild (FRM);
frm.submit ();
} outro {
// ONE OUE
localização.href = url;
}
}
Este método pode funcionar conforme o esperado, e document.Referrer na página de destino pode apontar para a página anterior normalmente.
Método de clique em simulação de elemento A
Depois de pesquisar on -line, descobri que o blog de Situ Zhengmei gravou outra maneira de lidar com esse problema:
A cópia do código é a seguinte:
// Defina para todos os navegadores
função goto (url) {
localização.href = url;
}
// Defrente-se para o IE
if (isie) {
função goto (url) {
var referlink = document.createElement ('a');
referlink.href = url;
document.body.appendChild (referlink);
referlink.Click ();
}
}
O princípio é muito simples. Primeiro, crie um elemento A, especifique seu atributo href como o link de destino e, em seguida, use o JS para acionar seu evento de clique. Após o teste, o Document.Referrer também pode ser recuperado normalmente na página de destino.
O código deste método é mais curto e deve ser melhor que a solução acima usando formulários.