2011-05-25 15 views
6

intentado imprimir la matriz $ _SERVER en PHP, sin embargo, no puede encontrar lo que quiero:Obtener URL completa con #tag

http://www.domain.com/#sometaginpage

Quiero que el "sometaginpage".

Ayuda. ¡Gracias!

+0

debido al navegador ... creo que sí – Harsh

+3

'window.location.hash' en JavaScript? – Marty

+0

posible duplicado de [¿Cómo obtener el valor después del hash en "somepage.php # name"?] (Http://stackoverflow.com/questions/1917762/how-to-get-the-value-after-the- hash-in-somepage-phpname) – PhoneixS

Respuesta

9

El navegador no envía nada al servidor después del hash (#) porque se resuelve en el navegador.

+0

No se resuelve mediante JavaScript. Se resuelve mediante una etiqueta de ancla . – netcoder

+0

Gracias por señalar eso, estaba equivocado y he editado mi respuesta. –

+0

Gracias muchachos, acabo de usar Javascript: var url = window.location.toString(); if (url.indexOf ("STRING_HERE")! = = 1) {window.location = ".URL_HERE";} – johnshaddad

0

No estoy seguro de si $ _SERVER ['REQUEST_URI'] lo dará o no. s992 podría estar en lo cierto, puede que no lo envíe al servidor.

3

bastante seguro de que #hashtags no se envían al servidor, pero se podría desarrollar una solución con AJAX:

algunos-pagina.html:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(window).bind('hashchange', function() { 
      var hash = window.location.hash.substring(1); 
      $.get('ajax-hash.php', { tag: hash }, 
       function(data) { $('#tag').html(data); } 
      ); 
     }); 
    }); 
</script> 

<div id="tag"></div> 
<a href="#one">#one</a> | <a href="#two">#two</a> | <a href="#lolwut">#lolwut</a> 

ajax-hash.php :

<?php 
    $hash = isset($_GET['tag']) ? $_GET['tag'] : 'none'; 
    echo $_SERVER['HTTP_REFERER'] . '#' . $hash; 
?> 

Nota: Esto depende de que el navegador realmente envíe el HTTP_REFERER .. Ya que se hace a través de jQuery, DEBE ... ¡pero sin promesas! (Antivirus/Cortafuegos les encanta quitar eso de sus paquetes)

+0

¡Bonito pedazo de código! Funciona bien para mí – leymannx

Cuestiones relacionadas