He resuelto un caso en el que el referente se pierde en varios métodos de salto de página. Se menciona que en IE, cuando se redirige una página utilizando un método como ubicación.href = "a.html", el valor de document.referrer en la página de destino estará vacío. Esto debería ser un error en IE.
En la mayoría de los casos, este problema no nos causará problemas, pero a veces tenemos que usar JavaScript para saltar, y al mismo tiempo tenemos que recopilar documentos. Refirma en la página siguiente, por lo que tenemos que pensar en otras maneras.
Método Get Get Form
Lo primero que me viene a la mente es usar el formulario para iniciar una solicitud GET usando JS. El código se ve así:
La copia del código es la siguiente:
función gotopage (url) {
if (isie) {
// es decir, navegador
var frm = document.createElement ("formulario");
frmm.action = url;
frmmethod = "Get";
document.body.appendChild (FRM);
frM.Submit ();
} demás {
// no II
ubicación.href = url;
}
}
Este método puede funcionar como se esperaba, y document.Referrer en la página de destino puede apuntar a la página anterior normalmente.
Método de clic de simulación de elemento A
Después de buscar en línea, descubrí que el blog de Situ Zhengmei grabó otra forma de lidiar con este problema:
La copia del código es la siguiente:
// Defina para todos los navegadores
función goto (url) {
ubicación.href = url;
}
// volver a definir para IE
if (isie) {
función goto (url) {
var referlink = document.createElement ('a');
referlink.href = url;
document.body.appendChild (referlink);
referlink.click ();
}
}
El principio es muy simple. Primero cree un elemento A, especifique su atributo HREF como el enlace de destino y luego use JS para activar su evento de clic. Después de la prueba, Document.ReFerrer también se puede recuperar normalmente en la página de destino.
El código de este método es más corto y debería ser mejor que la solución anterior utilizando formularios de formulario.