Je fais de la navigation avec des pages mais ce code ne fonctionne pas, quel est le problème?
<script>
$(document).ready(function() {
$("body").keydown(function(event) {
if(event.keyCode == 37) { // left
window.location.replace("http://newsii.abudayah.com/photo/2)"; }
else if(event.keyCode == 39) { // right
window.location.replace("http://newsii.abudayah.com/photo/31)"; }
});
});
</script>
N'utilisez pas .replace()
pour cela, attribuez simplement la valeur directement.
$("body").keydown(function(event) {
if(event.keyCode == 37) { // left
window.location = "http://newsii.abudayah.com/photo/2";
}
else if(event.keyCode == 39) { // right
window.location = "http://newsii.abudayah.com/photo/31";
}
});
Votre code contient une erreur de syntaxe. Votre parenthèse finale est à l'intérieur de la citation et non à l'extérieur ...
Essayer:
<script>
$(document).ready(function() {
$("body").keydown(function(event) {
if(event.keyCode == 37) { // left
window.location.replace("http://newsii.abudayah.com/photo/2"); }
else if(event.keyCode == 39) { // right
window.location.replace("http://newsii.abudayah.com/photo/31"); }
});
});
</script>
window.location.replace n'est pas pris en charge dans tous les navigateurs. L'attribution de la valeur d'emplacement est toujours prise en charge. Cependant, la raison d'utiliser remplacer plutôt que d'attribuer la valeur d'emplacement est que vous ne voulez pas que l'URL actuelle apparaisse dans l'historique ou qu'elle s'affiche lorsque vous utilisez le bouton de retour. Comme ce n'est pas toujours possible, il suffit de se contenter de ce qui est possible:
<script>
$(document).ready(function() {
$("body").keydown(function(event) {
if(event.keyCode == 37) { // left
try { window.location.replace("http://newsii.abudayah.com/photo/2"); }
catch(e) { window.location = "http://newsii.abudayah.com/photo/2"; }
}
else if(event.keyCode == 39) { // right
try { window.location.replace("http://newsii.abudayah.com/photo/31"); }
catch(e) { window.location = "http://newsii.abudayah.com/photo/31"; }
}
});
});
</script>
J'avais des problèmes avec cela dans Chrome. J'essayais de charger une autre page du même domaine, mais j'utilisais une URL absolue (par exemple .www.example.com/newurl
). Je l'ai changé en une URL relative (/newurl
) et ça marche maintenant.
Je pense que c'est une fonction de sécurité pour empêcher l'utilisateur d'être redirigé vers un site malveillant via une annonce javascript.
J'ai eu un problème avec le fait qu'il ne fonctionnait pas lors du rechargement de la même page dans Chrome. Faire ce qui suit a fonctionné:
window.location.replace("/mypage1.aspx?type=abc"); //redirect to fake page
window.location.replace("/mypage.aspx?type=abc"); //redirect to same page
C'est un peu un hack, mais cela semble être la seule chose qui force un rechargement sur la même page dans Chrome. IE et FF fonctionnent sans la redirection vers une fausse page.
J'ai utilisé ça et ça marche
$(document).ready(function () {
$(document).keydown(function(e) {
var url = false;
if (e.which == 37) { // Left arrow key code
url = $('.prev').attr('href');
}
else if (e.which == 39) { // Right arrow key code
url = $('.next').attr('href');
}
if (url) {
window.location = url;
}
});
});