La importancia del referente
Hay un encabezado de referente en la solicitud HTTP, que indica la fuente del tráfico actual. Por ejemplo, haga clic en un enlace en www.sina.com.cn/sports/ para llegar a la página de inicio de cctv.com, y luego el referente es www.sina.com.cn/sports/. En JavaScript, podemos obtener la misma información a través de document.referrer. A través de esta información, podemos saber qué canal llegan los visitantes a la página actual. Esto es muy importante para el análisis web.
Sin embargo, por varias razones, a veces el referente leído en JavaScript es una cadena vacía. Resumamos qué circunstancias se referirán los referentes.
Modificar el objeto de ubicación para la navegación de la página
El objeto de ubicación es un objeto muy práctico para la navegación de la página. Porque él te permite cambiar solo una parte de la URL. Por ejemplo, cambie del nombre de dominio CN al nombre de dominio COM, otras partes permanecen sin cambios:
La copia del código es la siguiente:
Window.location.hostname = "Ejemplo.com";
Sin embargo, la modificación del método de navegación de página por navegación de página dará como resultado la pérdida de referente en IE.
Devuelve una cadena vacía en IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 Todos regresan a la página web de origen normalmente
Abra nueva ventana por ventana. Abre
Ejemplo:
La copia del código es la siguiente:
<a href = "#" onClick = "window.open ('http://www.google.com')"> Acceda a Google </a>
Al hacer clic en este enlace, abrirá el sitio web de Google en una nueva ventana.
La copia del código es la siguiente:
JavaScript: alerta (document.referrer)
Resultados de la prueba:
Devuelve una cadena vacía en IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 Todos regresan a la página web de origen normalmente
Si se redirige de esta manera bajo el mismo nombre de dominio, entonces podemos acceder al objeto Windowsw.Epener para obtener la información de referencia perdida. El código es el siguiente:
La copia del código es la siguiente:
<script type = "text/javaScript">
var referrer = document.referrer;
if (! referrer) {
intentar {
if (window.opener) {
// Si el dominio cruzado en IE, se lanzará una excepción de permiso
// Safari y Chrome no tienen propiedades
referente = window.opener.location.href;
}
}
Catch (e) {}
}
</script>
Si cruza el dominio, estará indefenso ~
Arrastre el mouse para abrir una nueva ventana
El mouse arrastrar y soltar es un hábito de usuario muy popular hoy en día. Sin embargo, las páginas abridas de esta manera básicamente todo el referente se pierde. Además, en este caso, es imposible usar el método de ventana.
Probado:
Maxthon 2.5.2, complemento de Firegesture para Firefox, Chrome 3.0+, Opera 9.6, Safari 3.2.
Haga clic en el enlace interno de Flash
Cuando hace clic en Flash para llegar a otro sitio web, la situación del referente es más desordenada.
En IE, el valor se lee a través del documento. Refirer del cliente JavaScript está vacío, pero si usa el software de monitoreo de tráfico para mirarlo, encontrará que, de hecho, el encabezado de referente en la solicitud HTTP tiene un valor. Este puede ser un error en la implementación de IE. Al mismo tiempo, este valor apunta a la dirección del archivo flash, no la dirección de la página web de origen.
Después de hacer clic en Flash en Chrome 4.0 para llegar a una nueva ventana, el referente también señala la dirección del archivo flash, no la dirección de la página web de origen.
Chrome 3.0 y Safari 3.2 son los mismos, y ambos perderán información del referente.
Opera, como Firefox, el valor del referente es la dirección de la página web de origen.
Https salta a http
Al saltar de un sitio web HTTPS a un sitio web HTTP, el navegador no enviará un referente. El comportamiento de estos principales navegadores es el mismo.
Por ejemplo, cuando usamos Google Reader o Gmail en HTTPS, hacemos clic en un enlace para ir a otro sitio web, no hay diferencia entre dicho acceso y los usuarios que escriben directamente la URL.
El impacto de la pérdida de referente en la monitorización del tráfico publicitario
Si se pierde el referente, Web Analytics perderá una parte muy importante de la información, especialmente para el tráfico publicitario, es imposible conocer la fuente real. En la actualidad, muchos sitios web en China que usan Google Adsense Advertising Use Window. . Por lo tanto, muchas herramientas de estadísticas de tráfico clasificarán esta parte del tráfico como "tráfico directo", que es equivalente a los usuarios que escriben la URL directamente.
En este caso, es necesario permitir que el AD plagiar haya agregado parámetros de seguimiento específicos a la URL de la página de destino al servir el anuncio.
Por ejemplo, si se hace clic en un anuncio flash, la URL para llegar a http://www.example.com/. http: // www.example.com/?src=sina, similar a este método, y luego use el código JavaScript para extraer este parámetro SRC en la página de destino, para que pueda obtener la información fuente del anuncio.
Al servir a Google AdWords, el sistema de fondo tiene una opción de "etiqueta automática". y Adwords AD Backend. De esta manera, puede saber a qué campaña corresponde el tráfico de anuncios, a qué fuente de anuncios y palabras clave de anuncios y otra información. En realidad es similar a la idea mencionada anteriormente. Es solo que Google ha hecho automáticamente modificaciones de URL para usted.
Solución al referente vacío en IE
Si el método Window.location.href se usa para saltar en IE, el valor del referente está vacío. Y si el referente salta en la etiqueta, el referente no estará vacío. Entonces, el siguiente código puede resolver este problema, es decir,
La copia del código es la siguiente:
función gotourl (url) {
if (window.vbarray) {
var gotolink = document.createElement ('a');
gotolink .href = url;
document.body.appendChild (gotolink);
gotolink .click ();
}demás{
window.location.href = url;
}
}
Prohibir los navegadores no traer referente al acceder a los enlaces
Cuando hacemos clic en un enlace de un sitio web para ingresar a otra página, el navegador agregará un valor de referencia al encabezado para identificar la página fuente de esta visita. Pero este tipo de logotipo puede filtrar la privacidad del usuario.
• Use la solución HTML5 recién agregada, use rel = "noreferrer" para declarar el atributo de conexión como NoreFerrer.
• Use una página intermedia, pero en realidad envíe un referente, como usar la dirección de conexión de Google, NoreFerrer.js.
• Use el protocolo JavaScript para vincular para transferir, consulte las instrucciones a continuación.
Una nueva ventana es equivalente a Target = "_ en blanco":
La copia del código es la siguiente:
función Open_window (enlace) {
var arg = '/u003cscript/u003location.replace("'+link+'")/u003c/script/u003e';
Window.open ('javascript: window.name;', arg);
}
</código>
Volver a una conexión es equivalente a Target = "_ Self":
La copia del código es la siguiente:
función redirect (enlace) {
var arg = '/u003cscript/u003etop.location.replace ("'+link+'")/u003c/script/u003e';
var iframe = document.createElement ('iframe');
iframe.src = 'javaScript: window.name;';
iframe.name = arg;
document.body.appendChild (iframe);
}
</código>