2010-06-11 22 views
5

Mi ancla html es la siguiente.Anclajes Safari en enlaces que no funcionan

<a name="template-8"/> 
<h4 class="template" id="template-8">A title</h4> 

Hasta donde yo sé, el navegador debe saltar al elemento con un nombre o atributo id correspondiente.

Cuando escribo en la url http://my.site.com/templates#template-8 safari salta por la página como se esperaba.

Sin embargo, al vincular como se indica a continuación, el ancla no hace nada. Chrome, Opera, IE7 y Firefox funcionan.

<a href="http://my.site.com/templates#template-8">A link</a> 

Safari es la versión 5.0, este podría ser un error de safari?

Respuesta

15

El problema era que tenía un encabezado de redirección en la página a la que estaba enlazando.

Opera, IE, Chrome, Firefox transportará el ancla a la nueva página. Sin embargo, safari pierde el ancla en la redirección.

Si tiene problemas con los anclajes Safari, deshabilite los redireccionamientos.

+0

Muchísimas gracias por esto. Experimenté el problema en Wordpress. No estoy exactamente seguro de por qué hubo una redirección. Quizás cambié el nombre de la página en algún momento y no actualicé los enlaces dentro de la página. – cdonner

1

Hay dos problemas secundarios que veo, que no son la causa (ya que se encontró que el problema ya) pero probablemente no ayudan:

  • de cierre automático <a> etiqueta. No puede cerrar automáticamente las etiquetas que se supone que tienen etiquetas de finalización, debe ser: <a name="template-8"></a>.
  • Los atributos name y id comparten el mismo "espacio de nombre", por lo que no puede tener el mismo valor para un atributo name y id. Todos los navegadores de los últimos 10 años admiten anclas en ID, así que elimine esa etiqueta de enlace inútil.
2

Me acabo de encontrar con el mismo problema y encontrar su puesto mientras que la búsqueda - obviamente que haya solucionado esto, ya que estaba de nuevo en 2010 y pero pensé que iba a publicar lo que encontré en caso de que alguien encuentra esto. :)

estoy usando .htaccess para redireccionar mi url de mydomaincom/index.php a mydomaincom/y encontró que mi navegador no funcionaba en Safari desde mis direcciones href donde el valor index.php # y Safari v5 wouldn' Llevar los enlaces de anclaje.

En lugar de desactivar mi redirección, acabo de cambiar las direcciones URL para apuntar a mydomaincom/# value. No sólo este trabajo grande para todos los navegadores, pero también hizo que mi página más rápido (todavía no está seguro de cómo, pero buscará esta ahora :))

10

Para mí, simplemente tenía que cambiar

http://domain.com/page#myanchor 

a

http://domain.com/page/#myanchor 
+1

Saludos por esto. Solución simple y funciona también en Firefox, Opera y Chrome. – Ninetou

+2

¿De verdad? Esto funciona para ti en Safari? No veo el mismo comportamiento. –

+0

Hola Ryan, publica tu código y lo probaré en Safari –

-1

Para arreglar una etiqueta de anclaje en Safari.Procedo de esta manera:

<a href="#" class="btn">A tag</a> 

Y en mi archivo css:

.btn{ 
    display:block; 
    width:100%; 
    height:100%; 
} 

Lo importante es por alguna razón, a veces Safari tiene que ver tu enlace como un bloque, y puede ser útil si usted crea una lista, con algunos enlaces dentro. Ejemplo:

<ul> 
    <li><a href="#" class="btn">A tag</a></li> 
    <li><a href="#" class="btn">A tag</a></li> 
</ul> 

Obras para Safari 6

Cuestiones relacionadas