19
Abbiamo una funzione JavaScript denominata "move" che fa solo "windows.location.href = qualsiasi ancora data".
Questa funzione funziona su IE, Opera e Safari, ma in qualche modo viene ignorata in Firefox. La ricerca su Google non produce una risposta soddisfacente perché non funziona.
Qualche guru JavaScript è a conoscenza di questo comportamento e quale sarebbe la migliore pratica per passare a un'ancora tramite JavaScript?windows.location.href non funziona su Firefox3
Ho appena provato a installare "window.location.href" sulla pagina di test di W3School e ha funzionato. Sei sicuro che nient'altro potrebbe causare il problema? http://www.w3schools.com/js/tryit.asp?filename=tryjs_location –
Grazie per il tuo post. Bene, ho provato a semplificare lo scenario. L'immagine intera è che chiamiamo il javascript da Response.Write, in un evento proveniente da una griglia DevExpress. Questo sarebbe l'intero contesto del problema. Provare solo con window.location non ha funzionato. –
non sono sicuro se ottengo questo bit "chiamando da Response.Write" bit. Se si "echo" -in esso all'output, racchiuso in un tag
Non sono sicuro di seguirti.
Ho appena provato: andare con FF3 a Lua 5.1 Reference Manual (lungo e con molti ancore).
Incollando
javascript:window.location.href="#2.5"; alert(window.location.href);
nella barra degli indirizzi, sono andato all'ancora giusta e ha visualizzato l'URL corretto. Funziona anche con un URL completo, ovviamente.Codice alternativo:
javascript:(function() { window.location.href="#2.5"; })();
Forse hai dimenticato il #. Problema comune, anche con mappe di immagini.
fonte
2008-11-08 19:57:42 PhiLho
Grazie per il tuo post. Ho impostato anche il carattere #. Puoi provare senza la frase "alert"? Se metto un avviso, in qualche modo funziona, se lo rimuovo, non lo fa. –
Se lo rimuovi nel bookmarklet, devi sostituirlo con void (0) o inserire tutto il materiale in una chiamata di funzione: il bookmarklet non deve avere un valore finale. – PhiLho
Si potrebbe anche usare
window.location.replace
per passare a un punto fermo, senza registrarlo nella cronologia del browser:Questo article illustra come saltare ad un'ancora e utilizza href come proprietà di sola lettura.
fonte
2008-11-08 20:02:40 VonC
Perché non solo 'window.location.hash =" 1 "'? Tutte le sostituzioni e le spellature non sono necessarie. –
window.location.href funziona bene in tutte le versioni di Firefox, come fa document.location.href penso che ci sia qualcosa di diverso nel codice che sta rompendo le cose.
rilasciare questo in una pagina vuota, se funziona, indica che c'è qualcos'altro di sbagliato sulla tua pagina.
fonte
2008-11-08 20:56:53 scunliffe
Hai provato questo?
fonte
2008-11-08 22:39:39
forse è solo un errore di battitura nel tuo post e non nel codice, ma è finestra e non finestra s
fonte
2008-11-08 23:17:31 vincent
Ho lo stesso problema e credo che questo è legato alla a clic evento.
Ho una funzione che sposta il browser in una pagina specifica. Allego questa funzione ad alcuni eventi click: in un pulsante e in un'immagine. Inoltre, eseguo la funzione quando l'utente fa clic su escape (document onkeypress event).
I risultati sono che in tutti i casi la funzione viene richiamata ed eseguita, ma solo quando c'è un clic il browser va all'indirizzo desiderato.
Aggiornamento ho ottenuto che funziona! con un
Non so perché il location.replace non funzionava quando l'evento è stato pressione di un tasto, ma con la setTimeout funziona :)
Aggiornamento Tornando falso dopo la evento quando si preme escape fa funzionare il reindirizzamento. Se si restituisce vero o nulla il browser non seguirà
fonte
2008-11-28 11:09:08 graffic
Un'altra opzione:
fonte
2008-11-28 15:57:30 serg
fonte
2008-12-23 21:47:45
Se si sta tentando di chiamare questo codice javascript dopo un evento che è seguito da una richiamata è necessario aggiungere un'altra linea alla funzione:
nel markup per la pagina, il controllo che chiama questa funzione sullo scatto deve restituire il valore di questa funzione
Il valore di ritorno falso annullerà la richiamata e il reindirizzamento funzionerà ora. Perché funziona in IE? Beh, immagino che stessero pensando in modo diverso al problema quando hanno dato la priorità al reindirizzamento sul callback.
Spero che questo aiuti!
fonte
2009-08-26 13:50:52 sprite
grazie! questo problema mi stava facendo impazzire finché non ho trovato questo! +1 a te per aver salvato la mia attaccatura dei capelli. –
Grazie per questo, mi ha salvato un po 'di tempo. IE6 ha sempre bisogno di un calcio speciale nei pantaloni. – Yoshi
! +1 Grazie risolto il mio problema – SivaRajini
si prega di aggiungere piena tag script javascript
fonte
2010-02-10 12:34:18
Non c'è davvero bisogno di usare language = "javascript" più .. – Amalgovinus
Hai avuto modo di aggiungere return false; dopo il window.location.href come menzionato sopra.
fonte
2010-03-23 03:41:52
Per riferimento ho avuto lo stesso problema.
onclick = "javascript: window.location ('example.html');" non ha funzionato sotto FF (ultimo)
Ho appena dovuto riscrivere su onclick = "javascript: window.location = 'example.html';" per farlo funzionare
fonte
2012-07-29 20:51:25
Ho appena superato lo stesso problema. e il problema non è in javascript, ma l'attributo href sull'elemento
<a>
.mio codice js
mio precedente formato HTML è stato
ed aggiorno a
o rimuovere l'attributo href
speranza che questo aiuti.
fonte
2012-10-09 06:30:18
Un'osservazione al fine di garantire in un tale scenario
In seguito lavorerà in
IE
, ma né inChrome
néFirefox
(le versioni che ho provato)In seguito lavorerà tutti e tre
fonte
2012-12-20 12:26:47 Lijo
a volte se si utilizza modulo per inviare dati, questo può accadere. se stai usando unjax, prova a cambiare 'form' in 'div'. questo impedirà il comportamento predefinito di form e farà il tuo codice Ajax.
fonte
2013-08-16 04:15:24 libra
window.location.assign ("collegamento alla pagina successiva") dovrebbe funzionare in entrambi i browser (chrome e firefox).
fonte
2016-11-30 06:59:02 VikasChauhan