如何重定向到其他网页?

javascript jquery redirect MicroWings | 2020-02-02 19:35:06




这个问题的答案是一个社区的努力。编辑现有的答案来改进这篇文章。它当前不接受新的答案或交互。


如何使用jQuery或纯JavaScript将用户从一个页面重定向到另一个页面?


本站提供【Linux疑难问题解决】50元起 ,【爬虫开发】200元起。欢迎咨询QQ:376667689 点击这里给我发消息



30 回答


14502


我们不需要简单地使用jQuery重定向,而且jQuery是不必要的,而且
window.location.replace(...)
将最好地模拟HTTP重定向。
window.location.replace(...)
比使用
window.location.href
更好,因为
replace()
不会将原始页保留在会话历史记录中,这意味着用户不会陷入无休止的后退按钮失败中。
如果要模拟某人单击链接,请使用
location.href

如果您要模拟HTTP重定向,请使用
location.replace

例如:
// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");
// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

2020-02-02 19:35:18
鄙人很悲剧

1653


警告:这个答案只是作为一个可能的解决方案提供的;它显然不是最好的解决方案,因为它需要jQuery。相反,更喜欢纯JavaScript解决方案。
$(location).attr('href', 'http://stackoverflow.com')

2020-02-02 19:35:18
道德弟弟

643


标准的“香草”JavaScript重定向页面的方式,或者更简单的方式:(因为
window
是全局的)
location.href = 'newPage.html';


如果您在这里是因为重定向时丢失了HTTP_REFERER,继续阅读:
(否则忽略这最后一部分)

以下部分适用于使用
HTTP_REFERER
作为众多安全措施之一的用户(尽管这不是一个很好的保护措施)。如果您使用的是Internet Explorer 8或更低版本,则在使用任何形式的JavaScript页面重定向(location.ref等)时,这些变量都会丢失。
下面我们将实现IE8和更低版本的另一种选择,这样我们就不会丢失HTTP_REFERER。否则,您几乎总是可以简单地使用
window.location.href

针对
HTTP\u REFERER
的测试(URL粘贴、会话等)有助于判断请求是否合法。
(注意:还有一些方法可以绕过/欺骗这些REFERER,正如droop在评论中的链接所指出的那样)
简单的跨浏览器测试解决方案(对于Internet Explorer 9+和所有其他浏览器,请返回window.location.ref)
用法:
redirect('anotherpage.aspx');

function redirect (url) {
var ua = navigator.userAgent.toLowerCase(),
isIE = ua.indexOf('msie') !== -1,
version = parseInt(ua.substr(4, 2), 10);
// Internet Explorer 8 and lower
if (isIE && version < 9) {
var link = document.createElement('a');
link.href = url;
document.body.appendChild(link);
link.click();
}
// All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
else {
window.location.href = url;
}
}

2020-02-02 19:35:18
BOS机械制造有限公司

418


有很多方法可以做到这一点。
// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'
// window.history
window.history.back()
window.history.go(-1)
// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')

// Probably no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';
// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')

2020-02-02 19:35:18
不详之罩

323


这对每个浏览器都有效:
window.location.href = 'your_url';

2020-02-02 19:35:18
Nagi

295


如果你能更详细地描述一下你想做的事情,这会有帮助的。如果您试图生成分页数据,则可以选择如何执行此操作。您可以为希望能够直接访问的每个页面生成单独的链接。
1
2
3
...

注意,示例中当前页面在代码和CSS中的处理方式不同。
如果您希望通过AJAX更改页面数据,jQuery将进入这个页面。您要做的是将一个单击处理程序添加到对应于不同页面的每个锚标记。这个click处理程序将调用一些jQuery代码,这些代码通过AJAX进入并获取下一页,并用新数据更新表。下面的示例假设您有一个返回新页面数据的web服务。
$(document).ready( function() {
$('a.pager-link').click( function() {
var page = $(this).attr('href').split(/\?/)[1];
$.ajax({
type: 'POST',
url: '/path-to-service',
data: page,
success: function(content) {
$('#myTable').html(content); // replace
}
});
return false; // to stop link
});
});

2020-02-02 19:35:18
火爆鹅

250


我也认为
location.replace(URL)
是最好的方法,但是如果你想通知搜索引擎你的重定向(他们不分析JavaScript代码来查看重定向),你应该在你的网站上添加
rel="canonical"
元标记。
添加一个包含HTML刷新元标记的noscript部分,也是一个很好的解决方案。我建议您使用这个JavaScript重定向工具来创建重定向。它还支持Internet Explorer来传递HTTP引用程序。
示例代码如下:












2020-02-02 19:35:18
和谐有爱

224


但是如果有人想重定向回主页,他可以使用下面的代码片段。
window.location = window.location.host

如果您有三个不同的环境作为开发、登台,以及制作。
您可以通过将这些单词放在Chrome控制台或Firebug的控制台中来浏览这个窗口或window.location对象。

2020-02-02 19:35:18
冬日飞雪

211


JavaScript提供了许多方法来检索和更改浏览器地址栏中显示的当前URL。所有这些方法都使用Location对象,这是窗口对象的属性。您可以创建一个具有当前URL的新位置对象,如下所示。
var currentLocation = window.location;

URL的基本结构
//:/


协议--指定用于访问Internet上资源的协议名称。(HTTP(不带SSL)或HTTPS(带SSL))
主机名--主机名指定拥有资源的主机。例如,www.stackoverflow.com。服务器使用主机名提供服务。
端口—用于识别Internet或其他网络消息到达服务器时要转发到的特定进程的端口号。
路径名—路径提供Web客户端要访问的主机内特定资源的信息。例如,stackoverflow.com/index.html.
query——查询字符串跟随path组件,并提供资源可用于某些目的的信息字符串(例如,作为搜索参数或要处理的数据)。
hash——URL的锚定部分,包括哈希符号(#)。
使用这些位置对象属性,您可以访问所有这些URL组件
hash-设置或返回URL的锚定部分。
主机-设置
或返回URL的主机名和端口。
hostname-设置或
返回URL的主机名。
href -设置或返回整个
URL。
路径名-设置或返回URL的路径名。
端口-设置或返回服务器用于URL的端口号。
协议-设置或返回URL的协议。
搜索-现在设置或返回URL的查询部分如果要更改页面或将用户重定向到其他页面,可以使用Location对象的
ref
属性,例如
可以使用Location对象的ref属性。
window.location.href = "http://www.stackoverflow.com";

Location对象也有这些三种方法
assign()--加载新文档。
reload()--重新加载当前文档。
replace()--用新文档替换当前文档。
还可以使用assign()和replace方法重定向到其他页,如
location.assign("http://www.stackoverflow.com");
location.replace("http://www.stackoverflow.com");

assign()和replace()的区别--replace()之间的区别method和assign()method(),即replace()从文档历史记录中删除当前文档的URL,意味着无法使用“后退”按钮导航回原始文档。因此,如果要加载新文档,并希望提供导航回原始文档的选项,请使用assign()方法。
还可以使用jQuery更改location object href属性,如下所示
$(location).attr('href',url);

并因此可以将用户重定向到其他url。

2020-02-02 19:35:18
淚仔

200


基本上,jQuery只是一个JavaScript框架,在这种情况下,为了做一些像重定向这样的事情,您可以只使用纯JavaScript,因此在这种情况下,您有3个使用普通JavaScript的选项:
1)使用location replace,这将替换页面的当前历史记录,意味着无法使用后退按钮返回到原始页面。
window.location.replace("http://stackoverflow.com");

2)使用位置分配,这将为您保留历史记录,使用后退按钮,您可以返回原始页面:
window.location.assign("http://stackoverflow.com");

3)我建议使用上述方法之一,但这可能是使用纯JavaScript的第三个选项:
window.location.href="http://stackoverflow.com";

您也可以在jQuery中编写一个函数来处理它,但不推荐使用,因为它只是一行纯JavaScript函数,而且如果您已经在窗口范围内,也可以在没有窗口的情况下使用上述所有函数,例如
window.location.replace("http://stackoverflow.com");
可能是
location.replace("http://stackoverflow.com");

我也会在下面的图片中显示它们:

2020-02-02 19:35:18
我是一个小号哈

193


只需使用
window.location

示例:
window.location = "https://stackoverflow.com/";

这里是关于主题的过去文章:如何重定向到另一个网页?

2020-02-02 19:35:18
Se叔叔

168


在我开始之前,jQuery是一个用于DOM操作的JavaScript库。因此,您不应该使用jQuery进行页面重定向。
jQuery.com上的一句话:
虽然jQuery在较旧的浏览器版本中运行时可能不会出现重大问题,
我们不主动测试其中的jQuery,通常也不会修复其中可能出现的bug。
我们在这里找到了:
https://jQuery.com/browser support/
因此jQuery不是向后兼容的最终解决方案。
以下使用原始JavaScript的解决方案适用于所有浏览器,并且长期以来都是标准的时间,因此您不需要任何库来支持跨浏览器。
此页将在3000毫秒后重定向到Google



example


You will be redirected to google shortly.






不同的选项如下:
window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL
window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

使用“替换”时,“返回”按钮将不会返回重定向页,就好像它从未出现在历史记录中一样。如果希望用户能够返回重定向页面,请使用
window.location.href
window.location.assign
。如果您确实使用了一个允许用户返回重定向页面的选项,请记住,当您进入重定向页面时,它将重定向您返回。所以在选择重定向选项时要考虑到这一点。如果页面只有在用户完成某个操作时才重定向,那么将页面放在后退按钮历史记录中就可以了。但是如果页面自动重定向,那么您应该使用replace,这样用户就可以使用back按钮而不必被迫返回重定向发送的页面。
您还可以使用元数据来运行页面重定向,如下所示。
元刷新


元位置


基劫持


在这个页面上可以找到更多的方法将毫无戒心的客户端重定向到他们可能不想去的页面(其中没有一个方法依赖jQuery):
https://code.google.com/p/html5security/wiki/RedirectionMethods
我还想指出,人们不喜欢被随机重定向。只有在绝对需要的时候才能重新引导人们。如果你开始随机重定向用户,他们将永远不会再访问你的站点。
下一段是假设的:
你也可能会被报告为恶意站点。如果出现这种情况,当人们单击指向您站点的链接时,用户浏览器可能会警告他们您的站点是恶意的。如果有人在你的网站上报告糟糕的体验,搜索引擎可能会开始降低你的评分。
请查看谷歌网站管理员关于重定向的指南:
https://support.Google.com/webmasters/answer/27212117?hl=en&ref_topic=6001971
这里有一个有趣的小页面,可以把你踢出页面。



Go Away


Go Away






如果你将两个页面的示例组合在一起,你将拥有一个新的重路由循环,这将保证你的用户永远不会再使用你的站点。

2020-02-02 19:35:18
giwi

161


var url = 'asdf.html';
window.location.href = url;

2020-02-02 19:35:18
Kyondi

143


不需要jQuery,您可以这样做:
window.location = "http://yourdomain.com";

如果您只需要jQuery,您可以这样做:
$jq(window).attr("location","http://yourdomain.com");

2020-02-02 19:35:18
007007

143


这与jQuery一起工作:
$(window).attr("location", "http://google.fr");

2020-02-02 19:35:18
Anthony

88


35;使用jQuery/JavaScript进行HTML页面重定向
请尝试以下示例代码:
<0>

window.location = "www.google.co.in";/code>

2020-02-02 19:35:18
油油酱

79


您需要在代码中输入这一行:
$(location).attr("href","http://stackoverflow.com");

如果没有jQuery,请使用JavaScript:
window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");

2020-02-02 19:35:18
天下第一小賤人

77


所以,问题是如何做一个重定向页面,而不是如何重定向到一个网站?
你只需要使用JavaScript就可以了。这里有一些小代码,可以创建一个动态重定向页面。


所以说你只要把这个代码片段放到网站上的一个
[1]
文件中,你就可以像这样使用它了。
http://www.mywebsite.com/redirect?url=http://stackoverflow.com

如果你转到这个链接,它会自动将你重定向到stackoverflow.com。
链接到Documentation
这就是使用JavaScript
编辑来创建简单重定向页面的方法:
还有一点需要注意。我在我的代码中添加了
window.location.replace
,因为我认为它适合重定向页面,但是,您必须知道,当使用
window.location.replace
时,您会被重定向,当您在浏览器中按后退按钮时,它不会返回到重定向页面,它会返回到之前的页面,看看这个小演示。
示例:
过程:store home=>将页面重定向到google=>google
在google:google=>back button in browser=>store home
因此,如果这适合您的需要,那么一切都应该很好。如果要在浏览器历史记录中包含重定向页,请将此页替换为
if( url ) window.location.replace(url);

if( url ) window.location.href = url;

2020-02-02 19:35:18

76


原始问题:“如何使用jQuery重定向?”因此,答案实现了jQuery>>免费使用案例。
只需重定向到带有JavaScript的页面:
window.location.href = "/contact/";

或者如果需要延迟:
setTimeout(function () {
window.location.href = "/contact/";
}, 2000); // Time in milliseconds

jQuery允许您轻松地从网页中选择元素。您可以在页面上找到所需的任何内容,然后使用jQuery添加特殊效果、对用户操作作出反应,或者在所选元素的内部或外部显示和隐藏内容。所有这些任务都是从知道如何选择元素或事件开始的。
$('a,img').on('click',function(e){
e.preventDefault();
$(this).animate({
opacity: 0 //Put some CSS animation here
}, 500);
setTimeout(function(){
// OK, finished jQuery staff, let's go redirect
window.location.href = "/contact/";
},500);
});

假设有人编写了一个包含10000行代码的脚本/插件。使用jQuery,您只需一两行就可以连接到这段代码。

2020-02-02 19:35:18

72


在单击功能上,只需添加:
window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
window.location.href = "http://www.google.com";
});

2020-02-02 19:35:18
愤怒的饼干

61


试试这个:
location.assign("http://www.google.com");

示例的代码片段。

2020-02-02 19:35:18
清脆

56


不需要jQuery。你可以这样做:
window.open("URL","_self","","")

很简单!
启动HTTP请求的最佳方法是使用
document.loacation.href.replace('URL')

2020-02-02 19:35:18
绿bra娘

52


您可以在jQuery中这样重定向:
$(location).attr('href', 'http://yourPage.com/');

2020-02-02 19:35:18
zzy

52


先写好。要在应用程序中导航另一个链接,请从应用程序中导航另一个链接。下面是代码:
window.location.href = "http://www.google.com";

如果您想在应用程序中导航页面,我也有代码,如果您想的话。

2020-02-02 19:35:18
shabby

45


在JavaScript和jQuery中,我们可以使用以下代码将一个页面重定向到另一个页面:
window.location.href="http://google.com";
window.location.replace("page1.html");

2020-02-02 19:35:18
咩咩的皮卡球

45


ECMAScript 6+jQuery,85字节,请不要杀了我,这是个笑话。这是个笑话。这是一个笑话。
这确实“提供了问题的答案”,因为它要求“使用jQuery”来解决这个问题,而在本例中,jQuery以某种方式强迫它进入等式。
Ferrybig显然需要解释这个笑话(仍然是在开玩笑,我相信评论表单上的选项是有限的),因此,不用再费心了:
其他答案在不必要的情况下对
location
window
对象使用jQuery的
attr()

这个答案也滥用了它,但用了一种更荒谬的方式。这不是使用它来设置位置,而是使用
attr()
来检索设置位置的函数。
即使没有jQuery,函数也被命名为
jQueryCode
,调用一个函数是非常可怕的,尤其是当某物甚至不是一种语言时。
85字节是高尔夫代码的引用。打高尔夫显然不是你应该做的事,而且这个答案显然不是真正的高尔夫。
基本上,畏缩。

2020-02-02 19:35:18
废材的人参啊

45


Javascript:
window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

Jquery:
var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window

2020-02-02 19:35:18
小含

41


这是一个延时重定向。您可以将延迟时间设置为任意值:




Your Document Title




You will be redirected in 8 seconds!




2020-02-02 19:35:18
sdadada

38


有三种主要的方法可以做到这一点,
window.location.href='blaah.com';
window.location.assign('blaah.com');

和…
window.location.replace('blaah.com');

对于传统的重定向来说,最后一种方法是最好的,因为它不会保存您在搜索历史中重定向之前所访问的页面。但是,如果您只想用JavaScript打开一个选项卡,您可以使用上面的任何一个。1
编辑:前缀是可选的。

2020-02-02 19:35:18
LK_骑士

38


我不得不用另一个新的jQuery方法来更新这个荒谬的地方:
var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);

2020-02-02 19:35:18
水树奈奈



Copyright © 2019-2020 zimt8.com
备案号:湘ICP备19012068号