A importância do referente
Há um cabeçalho de referente na solicitação HTTP, que indica a fonte do tráfego atual. Por exemplo, clique em um link em www.sina.com.cn/sports/ para chegar à página inicial do CCTV.com e, em seguida, o referente é www.sina.com.cn/sports/. No JavaScript, podemos obter as mesmas informações através do document.Referrer. Através dessas informações, podemos saber qual canal os visitantes chegam à página atual. Isso é muito importante para a análise da Web.
No entanto, por vários motivos, às vezes o referenciador lido no JavaScript é uma string vazia. Vamos resumir que circunstâncias serão perdidas.
Modificar o objeto de localização para navegação de página
O objeto de localização é um objeto muito prático para a navegação de página. Porque ele permite que você mude apenas parte do URL. Por exemplo, mude do nome do domínio CN para o nome do domínio COM, outras partes permanecem inalteradas:
A cópia do código é a seguinte:
window.location.hostname = "exemplo.com";
No entanto, a modificação do método de navegação por página por navegação de página resultará na perda de referenciador no IE.
Retornar string vazia sob o IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 todos retornam à página de origem normalmente
Abra a nova janela por janela.open
Exemplo:
A cópia do código é a seguinte:
<a href = "#" onclick = "window.open ('http://www.google.com')"> access google </a>
Clicar neste link abrirá o site do Google em uma nova janela.
A cópia do código é a seguinte:
JavaScript: Alert (document.Referrer)
Resultados do teste:
Retornar string vazia sob o IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 todos retornam à página de origem normalmente
Se for redirecionado dessa maneira sob o mesmo nome de domínio, podemos acessar o objeto Windoww.opener para obter as informações de referenciador perdido. O código é o seguinte:
A cópia do código é a seguinte:
<script type = "text/javascript">
var referRer = document.ReferRer;
if (! referent) {
tentar {
if (window.opener) {
// Se cross-domain sob o IE, uma exceção de permissão será lançada
// Safari e Chrome não têm propriedades
referenciador = window.opener.location.href;
}
}
Catch (e) {}
}
</script>
Se você cruzar o domínio, você ficará impotente ~
Arraste o mouse para abrir uma nova janela
Atualmente, o arrasto e a queda do mouse é um hábito de usuário muito popular. No entanto, as páginas foram abertas dessa maneira, basicamente, todo o referenciador é perdido. Além disso, neste caso, é impossível usar o método da janela.
Testado:
Maxthon 2.5.2, Plugin Firegesture para Firefox, Chrome 3.0+, Opera 9.6, Safari 3.2.
Clique no link interno do flash
Quando você clica no Flash para alcançar outro site, a situação do referente é mais confusa.
No IE, o valor lido no documento.Referrer do Javascript Client está vazio, mas se você usar o software de monitoramento de tráfego para observar, você descobrirá que, de fato, o cabeçalho do referente na solicitação HTTP tem um valor. Isso pode ser um bug na implementação do IE. Ao mesmo tempo, esse valor aponta para o endereço do arquivo flash, não o endereço da página da web de origem.
Depois de clicar em Flash no Chrome 4.0 para chegar a uma nova janela, o referente também aponta para o endereço do arquivo flash, não o endereço da página da web de origem.
Chrome 3.0 e Safari 3.2 são os mesmos e ambos perderão as informações do referenciador.
Opera, como o Firefox, o valor do referenciador é o endereço da página da web de origem.
Https saltar para http
Ao pular de um site HTTPS para um site HTTP, o navegador não enviará um referenciador. O comportamento desses principais navegadores é o mesmo.
Por exemplo, quando usamos o Google Reader ou o Gmail no HTTPS, clicamos em um link para ir a outro site.
O impacto da perda de referenciador no monitoramento de tráfego de publicidade
Se o referenciador for perdido, a análise da web perderá uma parte muito importante das informações, especialmente para o tráfego de publicidade, é impossível conhecer a fonte real. Atualmente, muitos sites na China que usam a publicidade do Google AdSense usa janela.Epne para abrir links de anúncios, para que o referenciador seja perdido no IE. . Muitas ferramentas de estatística de tráfego classificarão, portanto, essa parte do tráfego como "tráfego direto", o que equivale a usuários digitando diretamente o URL.
Nesse caso, é necessário permitir que o anúncio plágio adicione parâmetros de rastreamento específicos ao URL da página de destino ao servir o anúncio.
Por exemplo, se um anúncio flash for clicado, o URL chegar a http://www.example.com/. http: // www.example.com/?src=sina, semelhante a esse método e, em seguida, use o código JavaScript para extrair esse parâmetro SRC na página de destino, para que você possa obter as informações de origem do anúncio.
Ao servir o Google Adwords, o sistema de segundo plano possui uma opção "tag automática". e back -end do anúncio do AdWords. Dessa forma, você pode saber qual campanha o tráfego de anúncios corresponde a quais fontes de anúncios e palavras -chave do anúncio e outras informações. Na verdade, é semelhante à idéia mencionada acima. É que o Google fez automaticamente modificações de URL para você.
Solução para um referente vazio no IE
Se o método Window.Location.Href for usado para pular no IE, o valor do referente estará vazio. E se o referente pular na tag, o referente não estará vazio. Então, o código a seguir pode resolver esse problema, ou seja, problema
A cópia do código é a seguinte:
função gotourl (url) {
if (window.vbarray) {
var gotolink = document.createElement ('a');
gotolink .href = url;
document.body.appendChild (gotolink);
gotolink .click ();
}outro{
window.Location.href = url;
}
}
Proibir os navegadores de não trazer referente ao acessar links
Quando clicamos em um link de um site para inserir outra página, o navegador agregará um valor do referente ao cabeçalho para identificar a página de origem desta visita. Mas esse tipo de logotipo pode vazar privacidade do usuário.
• Use a solução HTML5 recém -adicionada, use rel = "NoreferRer" para declarar o atributo de conexão como NoreFerRer.
• Use uma página intermediária, mas na verdade envie um referenciador, como usar a direção de conexão do Google, noreferrer.js.
• Use o protocolo JavaScript para vincular para transferir, consulte as instruções abaixo.
Uma nova janela é equivalente a Target = "_ Blank":
A cópia do código é a seguinte:
function Open_window (link) {
var arg = '/u003cscript/u003location.replace("'+Link+'")/u003C/Script/U003E';
window.open ('javascript: window.name;', arg);
}
</code>
Voltar para uma conexão é equivalente a Target = "_ Self":
A cópia do código é a seguinte:
função redirecion (link) {
var arg = '/u003cscript/u0033etop.location.replace ("'+link+'")/u003c/script/u003e';
var iframe = document.createElement ('iframe');
iframe.src = 'javascript: window.name;';
iframe.name = arg;
document.body.appendChild (iframe);
}
</code>