[英]window.location.replace() not working to redirect browser
我使用頁面進行導航,但此代碼不起作用,有什么問題?
<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>
不要為此使用.replace()
,只需直接分配值。
$("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";
}
});
您的代碼有語法錯誤。 您的結尾括號在引號內而不是在外...
嘗試:
<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。 始終支持分配位置值。 但是,使用替換而不是分配位置值的原因是您不希望當前 url 出現在歷史記錄中,或者在使用后退按鈕時出現。 由於這並不總是可能的,您只需要滿足於可能的情況:
<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>
在Chrome 中重新加載同一頁面時,我遇到了它無法工作的問題。 做以下工作:
window.location.replace("/mypage1.aspx?type=abc"); //redirect to fake page
window.location.replace("/mypage.aspx?type=abc"); //redirect to same page
這有點駭人聽聞,但這似乎是在 Chrome 中強制重新加載同一頁面的唯一方法。 IE 和 FF 無需重定向到假頁面即可工作。
我在 Chrome 中遇到了這個問題。 我試圖從同一個域加載另一個頁面,但使用的是絕對 URL(例如www.example.com/newurl
)。 我將其更改為相對 URL ( /newurl
),現在可以使用了。
我的想法是,這是一項安全功能,可防止用戶通過某些 javascript 廣告被重定向到惡意站點。
我用了這個,它的工作
$(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;
}
});
});
使用這種方式:
window.history.pushState("", "", "new url");
window.location.reload();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.