如何重定向到其他网页?

venkatachalam 7733 javascript jquery redirect

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

Ryan McGeary.. 13707

一个不是简单地使用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";

  • 问题是关于javascript的具体,但值得注意的是,如果用户禁用了javascript,则可以将元刷新用作故障恢复 (116认同)
  • 在提交按钮的情况下添加return false; 也在你的功能里面 (59认同)
  • 如果你已经在使用jQuery,只需使用`$(location).attr('href',url);`.`window.location.href`似乎在某些浏览器中有不一致的行为,事实上,它在我的Firefox版本中不起作用.我听说过设置`window.location`直接不能在IE版本中工作. (35认同)
  • @NicolòMartiniIf(IE)document.write(""); (17认同)
  • @Samir,不.正确的答案是调用`window.location.replace(...)`函数 - 这是jQuery无法改进的.对6岁的审查答案的迂腐评论不予赞赏. (4认同)
  • 应该删除"更好".正如答案后面所述,最佳解决方案是情境化.OP不会问"如何使用Javascript模拟HTTP重定向..." (3认同)
  • 如果链接以"www"开头,则不起作用.它只适用于`http`或`https`.但是我们怎样才能确保该网站甚至支持"https"? (3认同)
  • 是的它有效:http://jsfiddle.net/NcB2w/2/show/ (2认同)
  • 我可以使用哪些代码,以便重定向在生产和开发中起作用?因为域名当然不同 (2认同)
  • 此代码存在问题,因为当您使用后退按钮返回时,相同的代码不起作用.它不再起作用了. (2认同)

Boris Guéry.. 1548

警告:此答案仅作为可能的解决方案提供; 它显然不是最好的解决方案,因为它需要jQuery.相反,更喜欢纯JavaScript解决方案.

$(location).attr('href', 'http://stackoverflow.com')

  • 以这种方式强制jQuery进入等式是荒谬和毫无意义的,特别是因为`window.location`不是一个元素,因此没有属性. (242认同)
  • @deltaray这不是****另一种重定向方式,如上所述,它是位置对象周围的无意义包装器,甚至不是元素!这让我想起了http://i.stack.imgur.com/ssRUr.gif (135认同)
  • 这就是问题的字面答案.如果您已经在使用Jquery并因此已经加载了它,那么它将提高带宽效率,当然使用快捷方式更清晰 (52认同)
  • 更重要的是,有没有办法用jQuery做到这一点,这是旷日持久的?这只是window.location.href = url的包装器; 但是如果jQuery有一些函数,如果window.location.href = url; 是不是在当前的环境(浏览器,操作系统等)工作jQuery核心可以补偿? (22认同)
  • 我怀疑这仍然适用于最近的jQuery版本,其中`.attr()`实际设置属性(即`.setAttribute()`) (8认同)
  • 为什么你会这样做呢?JQuery意味着DOM操作库.不是为了这个.这个解决方案是一个糟糕的解 OP要求JQuery,答案应该是告诉OP不需要JQuery而不用于此.适合工作的正确工具.JQuery非常适合DOM,但不应该被迫执行它不应该做的事情. (6认同)
  • 这是一个非常非常糟糕的答案,我对它收到的票数感到震惊.attr()方法用于在DOM对象上设置属性值.使用它与此方法的意图相反,因此您无法保证此方法将来可用. (6认同)
  • 还有`$(location)[0] .href = url;`甚至`$,location.href = url;`我更喜欢第二个jQuery解决方案 (4认同)
  • 不需要警告,OP要求JQ答案,所以他/她将收到. (4认同)
  • 如果您确切知道jQuery的确是什么,那么它实际上只需设置"location.href"即可进行一百万次操作.这不是浏览器交叉兼容,它不节省带宽.但是如果你想要了解发生的事情:1)$()是一个包装,数组和对象以及DOM中的东西(它的含义)的函数,在这种情况下,"location"是一个对象.在经过另外一百万次操作之后,"attr"在该对象上设置了某个键.这些操作都不包括针对此案例的浏览器检查,因为不存在这样的事情.设置对象的属性只是浪费. (4认同)
  • jQuery至少会处理与不同JavaScript API的任何跨浏览器兼容性问题. (3认同)
  • 我知道这是一个老问题,有一个好奇心:一些XSS过滤器不允许像`<script> location ="http://example.com; </ script>"`那样阻止它,但如果你使用jQuery他们不会阻止它. (2认同)
  • 由于位置对象在今天使用的每个浏览器中都受支持,因此使用jQuery无法使此代码更"跨浏览器" (2认同)
  • 人们,也许jQuery不需要重定向.也许jQuery不是重定向的正确方法.也许OP并不真正意味着jQuery,只是Javascript.但事实是你使用jQuery重定向,如果出于任何原因,你想要这样做,这就是(_kinda hacky_)这样做的方法.我认为这个答案,**警告包括**是回答这个问题的最佳方式. (2认同)

Mark Pieszak.. 561

标准的"vanilla"JavaScript重定向页面的方式:

window.location.href = 'newPage.html';


如果你在这里是因为你在重定向时丢失了 HTTP_REFERER,请继续阅读:


以下部分适用HTTP_REFERER于许多安全措施之一(虽然它不是一个很好的保护措施).如果您使用的是Internet Explorer 8或更低版本,则在使用任何形式的JavaScript页面重定向(location.href等)时,这些变量都会丢失.

下面我们将实现IE8及更低版本的替代方案,以便我们不会丢失HTTP_REFERER.否则你几乎总是可以简单地使用window.location.href.

针对测试HTTP_REFERER(URL粘贴,会议等),可以是讲述一个请求是否合法,有益的. (注意:还有一些方法可以解决这些引用者的问题,如评论中的droop链接所述)


简单的跨浏览器测试解决方案(回退到Internet Explorer 9+和所有其他浏览器的window.location.href)

用法: 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; 
    }
}

  • 脚注:检查引荐来源作为安全措施是一个糟糕的解决方案.https://duckduckgo.com/?q=referrer+spoofing (52认同)

Govind Singh.. 377

有很多方法可以做到这一点.

// 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')

  • 这根本不解释*任何东西*.有人应该选择什么?从列表中随机选择一个?此外,这对现有答案有何影响? (125认同)
  • @IamtheMostStupidPerson正是我的观点.答案是没用的. (11认同)
  • `window.navigate`是旧的IE-only(Firefox/Chrome不支持此功能).如果要枚举所有选项,请不要忘记`document.location`. (7认同)
  • @LéoLam这就是为什么有一个名为Google的搜索引擎.:-)您可以在Google上搜索每一个并找到差异.你不想随意挑选一个. (2认同)

大智慧.. 296

这适用于每个浏览器:

window.location.href = 'your_url';

  • 如果您不希望第一页在浏览器历史记录中,您也可以执行`document.location.replace(redirectURL)` (3认同)

tvanfosson.. 275

如果你对你想做的事情有一点描述性,那将会很有帮助.如果您尝试生成分页数据,则有一些选项可用于执行此操作.您可以为希望能够直接访问的每个页面生成单独的链接.

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

请注意,示例中的当前页面在代码和CSS中的处理方式不同.

如果你想通过AJAX改变分页数据,这就是jQuery的用武之地.你要做的是为每个对应不同页面的锚标签添加一个点击处理程序.此单击处理程序将调用一些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
    });
});


Patartics Mi.. 233

我也认为这location.replace(URL)是最好的方法,但是如果你想通知搜索引擎你的重定向(他们不分析JavaScript代码以查看重定向),你应该将rel="canonical"meta标签添加到你的网站.

添加带有HTML刷新元标记的noscript部分也是一个很好的解决方案.我建议你使用这个JavaScript重定向工具来创建重定向.它还具有Internet Explorer支持以传递HTTP引用者.

没有延迟的示例代码如下所示:

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->


Nadeem Yasin.. 207

但如果有人想重定向回主页,那么他可能会使用以下代码段.

window.location = window.location.host

如果您有三个不同的环境,如开发,登台和生产,将会很有帮助.

只需将这些单词放在Chrome控制台或Firebug的控制台中,即可浏览此窗口或window.location对象.

  • 甚至更简单:`window.location ='/'` (12认同)
  • Iftah - 这取决于"基础"元标记. (4认同)

Nikhil Agraw.. 195

JavaScript为您提供了许多方法来检索和更改浏览器地址栏中显示的当前URL.所有这些方法都使用Location对象,它是Window对象的属性.您可以创建一个具有当前URL的新Location对象,如下所示.

var currentLocation = window.location;

URL的基本结构

<protocol>//<hostname>:<port>/<pathname><search><hash>

在此输入图像描述

  1. 协议 - 指定用于访问Internet上资源的协议名称.(HTTP(不含SSL)或HTTPS(含SSL))

  2. hostname - 主机名指定拥有该资源的主机.例如,www.stackoverflow.com.服务器使用主机名提供服务.

  3. 端口 - 用于识别Internet或其他网络消息到达服务器时要转发到的特定进程的端口号.

  4. pathname - 该路径提供有关Web客户端要访问的主机中特定资源的信息.例如,stackoverflow.com/index.html.

  5. 查询 - 查询字符串如下路径组件,并且提供的信息,该资源可利用为了某种目的(例如,作为用于搜索的参数或作为要处理的数据)的字符串.

  6. hash - URL的锚点部分,包括井号(#).

使用这些Location对象属性,您可以访问所有这些URL组件

  1. hash -Set或返回URL的锚点部分.
  2. host - 设置或返回URL的主机名和端口.
  3. hostname - 设置或返回URL的主机名.
  4. href - 设置或返回整个URL.
  5. pathname - 设置或返回URL的路径名.
  6. port - 设置或返回服务器用于URL的端口号.
  7. protocol - 设置或返回URL的协议.
  8. search - 设置或返回URL的查询部分

现在,如果要更改页面或将用户重定向到其他页面,可以href像这样使用Location对象的属性

您可以使用Location对象的href属性.

window.location.href = "http://www.stackoverflow.com";

Location Object也有这三种方法

  1. assign() - 加载新文档.
  2. reload() - 重新加载当前文档.
  3. replace() - 用新文档替换当前文档

您也可以使用assign()和replace方法重定向到这些其他页面

location.assign("http://www.stackoverflow.com");

location.replace("http://www.stackoverflow.com");

assign()和replace()的区别如何 - replace()方法和assign()方法()之间的区别在于replace()从文档历史中删除当前文档的URL,意味着它不可能使用"后退"按钮导航回原始文档.因此,如果要加载新文档,请使用assign()方法,并希望选择导航回原始文档.

您可以通过改变位置对象的href属性的jQuery也是这样

$(location).attr('href',url);

因此,您可以将用户重定向到其他网址.


大智慧.. 182

应该只能设置使用window.location.

例:

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

这是关于这个主题的过去的帖子:

如何重定向到其他网页?


Alireza.. 175

基本上jQuery只是一个JavaScript框架,在这种情况下做一些重定向等事情,你可以使用纯JavaScript,所以在这种情况下你有3个选项使用vanilla JavaScript:

1)使用位置替换,这将替换页面的当前历史记录,意味着无法使用后退按钮返回到原始页面.

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");

我还会在下面的图片中显示所有内容:

location.replace location.assign


Patrick W. M.. 154

在开始之前,jQuery是一个用于DOM操作的JavaScript库.所以你不应该使用jQuery进行页面重定向.

来自Jquery.com的报价:

虽然jQuery可能在较旧的浏览器版本中没有出现重大问题,但我们并不主动测试它们中的jQuery,并且通常不会修复可能出现在它们中的错误.

它在这里找到:https: //jquery.com/browser-support/

因此,jQuery并不是一种能够实现向后兼容的最终解决方案.

以下使用原始JavaScript的解决方案适用于所有浏览器,并且已经标准很长时间,因此您不需要任何库来支持跨浏览器.

此页面将在3000毫秒后重定向到Google

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

不同的选项如下:

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.hrefwindow.location.assign.如果您确实使用了允许用户返回重定向页面的选项,请记住,当您进入重定向页面时,它会将您重定向回来.因此,在为重定向选择选项时要考虑到这一点.在页面仅在用户完成操作时重定向的情况下,将页面置于后退按钮历史记录中是可以的.但是,如果页面自动重定向,那么您应该使用替换,以便用户可以使用后退按钮而不会强制返回到重定向发送的页面.

您还可以使用元数据来运行页面重定向,如下所示.

META刷新

<meta http-equiv="refresh" content="0;url=http://evil.com/" />

META位置

<meta http-equiv="location" content="URL=http://evil.com" />

基地劫持

<base href="http://evil.com/" />

可以在此页面上找到更多将您的毫无疑问的客户端重定向到他们可能不希望访问的页面的方法(其中一个不依赖于jQuery):

https://code.google.com/p/html5security/wiki/RedirectionMethods

我还想指出,人们不喜欢被随机重定向.仅在绝对需要时重定向人员.如果您开始随机重定向人员,他们将永远不会再次访问您的网站.

下一部分是假设的:

您也可能被报告为恶意网站.如果发生这种情况,那么当用户点击指向您网站的链接时,用户浏览器可能会警告他们您的网站是恶意的.如果人们报告您网站上的不良体验,搜索引擎可能会开始降低您的评分.

请查看有关重定向的Google网站站长指南:https: //support.google.com/webmasters/answer/2721217?hl = zh-CN&ref_topic = 6001971

这是一个有趣的小页面,可以让你离开页面.

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

如果将两个页面示例组合在一起,您将拥有一个婴儿循环重新路由,这将保证您的用户永远不会再想要再次使用您的网站.

  • 我通过说它不需要来解决他对jQuery的要求.JQuery有很多非常有用的JavaScript快捷方式,但不需要任何重定向快捷方式.JQuery只是JavaScript.而已.调用重定向的常规方法是使用jQuery来处理他的函数. (5认同)

大智慧.. 153

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


ScoRpion.. 135

你可以在没有jQuery的情况下做到这一点:

window.location = "http://yourdomain.com";

如果你只想要jQuery那么你可以这样做:

$jq(window).attr("location","http://yourdomain.com");


大智慧.. 134

这适用于jQuery:

$(window).attr("location", "http://google.fr");


Sakthi Karth.. 82

#HTML页面重定向使用jQuery/JavaScript

试试这个示例代码:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

如果您想提供完整的URL window.location = "www.google.co.in";.


iConnor.. 74

那么,问题是如何制作重定向页面,而不是如何重定向到网站?

您只需要使用JavaScript即可.这是一些将创建动态重定向页面的小代码.

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

所以说你只需把这个片段放到redirect/index.html你网站上的文件中就可以这样使用它.

http://www.mywebsite.com/redirect?url=http://stackoverflow.com

如果您转到该链接,它将自动将您重定向到stackoverflow.com.

链接到文档

这就是你用JavaScript 创建一个简单的重定向页面的方法

编辑:

还有一点需要注意.我添加window.location.replace了我的代码,因为我认为它适合重定向页面,但是,你必须知道在使用时window.location.replace你被重定向,当你按下浏览器中的后退按钮时它将不会返回到重定向页面,它将会回到它之前的页面,看看这个小小的演示事物.

例:

过程:store home => redirect page to google => google

在google:google => 后退按钮在浏览器 => 存储主页

所以,如果这符合您的需求,那么一切都应该没问题.如果要在浏览器历史记录中包含重定向页面,请将其替换为

if( url ) window.location.replace(url);

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


Ashish Ratan.. 74

您需要在代码中添加以下行:

$(location).attr("href","http://stackoverflow.com");

如果您没有jQuery,请使用以下命令运行JavaScript:

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");


Swaprks.. 69

在您的点击功能上,只需添加:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});


SergeDirect.. 66

*****原始问题是 - "如何重新使用JQUERY",HANS THE ANSWER IMPLEMENTS 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,您只需一两行即可连接到此代码.


tilak.. 57

试试这个:

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

示例的代码段.


MayorMonty.. 53

不需要jQuery.你可以这样做:

window.open("URL","_self","","")

就这么简单!

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


Anup.. 50

先写好.您希望在应用程序中导航,从您的应用程序中为另一个链接导航.这是代码:

window.location.href = "http://www.google.com";

如果你想在你的应用程序中导航页面,那么我也有代码,如果你想.


Azam Alvi.. 50

您可以像这样在jQuery中重定向:

$(location).attr('href', 'http://yourPage.com/');


大智慧.. 42

在JavaScript和jQuery中,我们可以使用以下代码将一个页面重定向到另一个页面:

window.location.href="http://google.com";
window.location.replace("page1.html");


1j01.. 42

ECMAScript 6 + jQuery,85字节

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

请不要杀我,这是个玩笑.这是个玩笑.这是个玩笑.

这确实"提供了问题的答案",因为它要求"使用jQuery"的解决方案,在这种情况下需要以某种方式强制它进入等式.

Ferrybig显然需要解释这个笑话(仍在开玩笑,我确信评论表上的选项有限),所以不用多说:

其他答案使用jQuery的attr()locationwindow不必要的对象.

这个答案也滥用它,但是更加荒谬.它不是用它来设置位置,而是attr()用来检索设置位置的函数.

jQueryCode虽然没有关于它的jQuery,但函数被命名,并且调用函数somethingCode是非常可怕的,特别是当某些东西甚至不是一种语言时.

"85字节"是对Code Golf的引用.高尔夫显然不是你应该在代码高尔夫之外做的事情,而且这个答案显然不是高尔夫球.

基本上,畏缩.


lalithkumar.. 41

使用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


Stefan Gruen.. 38

这是一个延时重定向.您可以将延迟时间设置为您想要的任何值:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>

  • 最好这样做:setTimeout(function(){window.location.href ="http://www.google.com/"},延迟); (5认同)

Ben.. 35

有三种主要方法可以做到这一点,

window.location.href='blaah.com';
window.location.assign('blaah.com');

和...

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

对于传统的重定向,最后一个是最好的,因为它不会保存您在搜索历史记录中重定向之前所访问的页面.但是,如果您只想打开带有JavaScript的选项卡,则可以使用上述任何一个选项卡.1

编辑:window前缀是可选的.


Epiphany.. 35

我只需要用另一个更新的jQuery方法来更新这种荒谬:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);


Bidyut.. 33

在PHP,HTML或jQuery部分之后编写以下代码.如果在PHP或HTML部分的中间,则使用<script>标记.

location.href = "http://google.com"


Divyesh Kanz.. 29

用于重定向页面或URL的jQuery代码

第一道路

这是用于重定向页面的jQuery代码.因为,我把这个代码放在$(document).ready()函数上,它会在页面加载后立即执行.

var url = "http://stackoverflow.com";
$(location).attr('href',url);

您甚至可以将URL直接传递给attr()方法,而不是使用变量.

第二种方式

 window.location.href="http://stackoverflow.com";

你也可以像这样编码(内部都相同):

window.location="http://stackoverflow.com";

如果你对window.location和之间的区别感到好奇window.location.href,那么你可以看到后一个是href显式设置属性,而前一个是隐式地设置属性.由于window.location返回一个对象,默认情况下会设置其.href属性.

第三种方式

还有另一种使用JavaScript replace()(window.location对象方法)重定向页面的方法.您可以将新URL传递给该replace()方法,它将模拟HTTP重定向.顺便说一句,请记住,该window.location.replace()方法不会将原始页面放在会话历史记录中,这可能会影响后退按钮的行为.有时候,这就是你想要的,所以要小心使用它.

// Doesn't put originating page in history
window.location.replace("http://stackoverflow.com");

第四种方式

喜欢attr()方法(在jQuery 1.6引入之后)

var url = "http://stackoverflow.com";
$(location).prop('href', url);


大智慧.. 27

在JavaScript和jQuery中,我们使用以下代码重定向页面:

window.location.href="http://google.com";
window.location.replace("page1.html");

但是你可以在jQuery中创建一个函数来重定向页面:

jQuery.fn.redirect=function(url)
{
    window.location.href=url;
}

并调用此函数:

jQuery(window).redirect("http://stackoverflow.com/")

  • 这应该是一个jQuery方法没有意义.`$("div").redirect(url)`和`$().redirect(url)`之间没有区别.你可以把它变成一个静态方法,比如`$ .redirect(url)`但是也没有那么多的需要.jQuery根本不需要参与. (2认同)

Inconnu.. 27

jQuery中,使用$(location).attr('href', url):

$(document).ready(function(){
    var url = "https://www.youtube.com/watch?v=JwMKRevYa_M";
    $(location).attr('href', url); // Using this
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

原始 JavaScript中,有许多方法可以实现:

window.location.href="https://www.youtube.com/watch?v=JwMKRevYa_M";

- 显式设置href属性.

window.location = "http://www.GameOfThrones.com";

- 隐式执行因为window.location返回一个对象,默认情况下会设置其.href属性.

window.location.replace("http://www.stackoverflow.com");

- 用新的窗口替换当前窗口的位置.

self.location = "http://www.somewebsite.com";

- 设置当前窗口本身的位置.

以下是一段时间(3秒)后JavaScript重定向的示例:

<script>
    setTimeout(function() {
        window.location.href = "https://www.youtube.com/";
    }, 3000);
</script>


大智慧.. 25

使用JavaScript:

方法1:

window.location.href="http://google.com";

方法2:

window.location.replace("http://google.com");

使用jQuery:

方法1:$(位置)

$(location).attr('href', 'http://google.com');

方法2:可重用功能

jQuery.fn.redirectTo = function(url){
    window.location.href = url;
}

jQuery(window).redirectTo("http://google.com");


大智慧.. 23

使用jQuery函数:

$.extend({
  redirectPost: function(location, args) {
    var form = '';
    $.each(args, function(key, value) {
      form += '<input type="hidden" name="' + key + '" value="' + value + '">';
    });
    $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
  }
});

在您的代码中,您可以像这样使用它:

$.redirectPost("addPhotos.php", {pimreference:  $("#pimreference").val(), tag: $("#tag").val()});


vipul sorath.. 18

只需在JavaScript中,您就可以使用以下内容重定向到特定页面:

window.location.replace("http://www.test.com");

要么

location.replace("http://www.test.com");

要么

window.location.href = "http://www.test.com";

使用jQuery:

$(window).attr("location","http://www.test.com");


大智慧.. 16

<script type="text/javascript">
var url = "https://yourdomain.com";

// IE8 and lower fix
if (navigator.userAgent.match(/MSIE\s(?!9.0)/))
{
    var referLink = document.createElement("a");
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
}

// All other browsers
else { window.location.replace(url); }
</script>


大智慧.. 15

以下是重定向到其他页面的代码,超时为10秒.

<script>
    function Redirect()
    {
        window.location="http://www.adarshkr.com";
    }

    document.write("You will be redirected to a new page in 10 seconds.");
    setTimeout('Redirect()', 10000);
</script>

你也可以这样做,点击按钮使用location.assign:

<input type="button" value="Load new document" onclick="newPage()">
<script>
    function newPage() {
        window.location.assign("http://www.adarshkr.com")
    }
</script>


Vinay Sharma.. 14

您可以像下面的代码一样使用它,其中getGuestHouseRequestToForward是请求映射(URL).您也可以使用您的URL.

function savePopUp(){
    $.blockUI();
    $.ajax({
        url:"saveForwardingInformationForGuestHouse?roomType="+$("#roomType").val(),
        data: $("#popForm").serialize(),
        dataType: "json",
        error: (function() {
            alert("Server Error");
            $.unblockUI();
    }),
    success: function(map) {
        $("#layer1").hide();
        $.unblockUI();
        window.location = "getGuestHouseRequestToForward";
    }
});

这适用于相同的应用程序环境.

如果您只想使用jquery特定代码,那么以下代码可能有所帮助:

 $(location).attr('href',"http://www.google.com");
 $jq(window).attr("location","http://www.google.com");
 $(location).prop('href',"http://www.google.com"); 


madhur.. 13

您可以使用:

window.location.replace("http://www.example.com/");

replace()方法不会将原始页面保存在会话历史记录中,因此用户无法使用后退按钮返回并再次重定向.注意:在这种情况下,浏览器后退按钮将被停用.

但是,如果您想要效果与点击链接一样,您应该去:

window.location.href = "http://www.example.com/";

在这种情况下,浏览器后退按钮将处于活动状态.


大智慧.. 13

您可以使用以下方法重定向页面:

  1. 通过在头部使用元标记 - <meta http-equiv="refresh" content="0;url=http://your-page-url.com" />.请注意,content="0;...用于在您需要重定向页面的秒数之后

  2. 使用JavaScript: window.location.href = "http://your-page-url.com";

  3. 通过使用jQuery: $(location).attr('href', 'http://yourPage.com/');


大智慧.. 13

<script type="text/javascript">
    if(window.location.href === "http://stackoverflow.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>

  • OP希望知道如何在jQuery中执行它 - 这不使用jQuery,因此它不回答OP的问题 (3认同)

Must Keem J.. 13

Javascript非常广泛.如果您想跳转到另一个页面,您有三个选项.

 window.location.href='otherpage.com';
 window.location.assign('otherpage.com');
 //and...

 window.location.replace('otherpage.com');

如果你想要移动到其他页面,你可以使用任何一个,如果这是你的要求但是所有这三个选项仅限于不同的情况.根据你的要求明智地选择.

如果你对这个概念的更多知识感兴趣.你可以进一步了解.

window.location.href returns the href (URL) of the current page
window.location.hostname returns the domain name of the web host
window.location.pathname returns the path and filename of the current page
window.location.protocol returns the web protocol used (http: or https:)
window.location.assign loads a new document


大智慧.. 11

这很容易实现.您可以使用:

window.location.href = "http://www.example.com/";

这将记住上一页的历史记录.因此,可以通过单击浏览器的后退按钮返回.

要么:

window.location.replace("http://www.example.com/");

此方法不记得上一页的历史记录.在这种情况下,后退按钮变为禁用状态.


cascading-st.. 11

使用:

function redirect(a) {
    location = a
}

并称之为: redirect([url]);

没有必要为hreflocation,因为它是隐含的.


user1012506.. 10

我已经使用了JavaScript的函数redirect().它正在发挥作用.

<script type="text/javascript">
    $(function () {
        //It's similar to HTTP redirect
        window.location.replace("http://www.Technomark.in");

        //It's similar to clicking on a link
        window.location.href = "Http://www.Technomark.in";
    })
</script>

  • 这个答案和第一个答案有什么区别? (8认同)
  • @IlyasMimouni嗯,有配色方案...... (8认同)

HD.... 10

单页应用程序,在同一应用程序路径中

window.location.pathname = '/stack';

JavaScript的:

location.href = "http://stack.com";
window.location = "http://stack.com";

jQuery的:

$(location).attr('href', "http://www.stack.com");
$(window).attr('location', "http://www.stack.com");

Angular 4

import { Router } from '@angular/router';
export class NavtabComponent{
    constructor(private router: Router) {
    }
    this.router.navigate(['bookings/taxi']);
}


Maniruzzaman.. 9

我只是添加另一种方式:

要将您网站的任何特定页面/链接重定向到另一个页面,只需添加以下代码行:

<script>
    if(window.location.href == 'old_url')
    {
        window.location.href="new_url";
    }

    // Another URL redirect
    if(window.location.href == 'old_url2')
    {
        window.location.href="new_url2";
    }
</script>

对于现实生活中的例子,

<script>
    if(window.location.href == 'https://old-site.com')
    {
        window.location.href="https://new-site.com";
    }

    // Another URL redirect
    if(window.location.href == 'https://old-site.com/simple-post.html')
    {
        window.location.href="https://new-site.com/simple-post.html";
    }
</script>

通过使用此简单代码,您可以重定向整个站点或任何单个页面.


Mohideen ibn.. 9

  1. location.assign():

    通过将路径传递到路径路径来分配路径路径.即使在分配路径后,Assign也会为您提供历史记录.

    使用方法:应该将值传递给它.

    例如: location.assign("http://google.com")

    在此输入图像描述

  2. location.href

    可以定义给它一个路径...一旦它设置它将重定向到一个给定的路径,它将保持历史...

    使用方法:应将值赋值给它.

    例如: location.href = "http://google.com"

  3. location.replace():

    如果您不想保留历史记录,将有助于替换路径.一旦你更换它的路径它就不会给你一个历史记录.

    使用方法:值应传入其中.

    例如: location.replace("http://google.com")

    在此输入图像描述


assign()并且href相似,都可以保存历史.assign将通过传递值和href工作分配.

您可以使用JavaScript本身实现它,而无需通过分配使用jQuery,

window.location = "http://google.com"
location.href = "http://google.com"

您可以使用下面的jQuery实现类似的功能.它会像上面一样完全相同,

$(window).attr('location', "http://www.google.com");
$(location).attr('href', "http://www.google.com");

你可以很容易地理解两者之间的区别......

这是Location对象,

来自chrome的位置API


Zigri2612.. 8

从客户端进行重定向的所有方法:

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and jQuery example to redirect a page or URL </title>
    </head>
    <body>
        <div id="redirect">
            <h2>Redirecting to another page</h2>
        </div>

        <script src="scripts/jquery-1.6.2.min.js"></script>
        <script>
            // JavaScript code to redirect a URL
            window.location.replace("http://stackoverflow.com");
            // window.location.replace('http://code.shouttoday.com');

            // Another way to redirect page using JavaScript

            // window.location.assign('http://code.shouttoday.com');
            // window.location.href = 'http://code.shouttoday.com';
            // document.location.href = '/relativePath';

            //jQuery code to redirect a page or URL
            $(document).ready(function(){
                //var url = "http://code.shouttoday.com";
                //$(location).attr('href',url);
                // $(window).attr('location',url)
                //$(location).prop('href', url)
            });
        </script>
    </body>
</html>


RuNpiXelruN.. 8

如果您想简单地重定向到同一个应用程序中的路由

window.location.pathname = '/examplepath'

将是要走的路.


Andrei Todor.. 8

使用location.replace()将重定向您,但不保存上一页的历史记录.最好在提交表单时使用.但是当你想保留你的历史时,你必须使用它location.href=//path

例子:

// form with steps
document.getElementById('#next').onclick = function() {
   window.location.href='/step2' // iteration of steps;
}

// go to next step
document.getElementById("#back').onclick = function() {
   window.history.back();
}

// finish 
document.getElementById("#finish').onclick = function() {
   window.location.href = '/success';
}

// on success page
window.onload = function() {
    setTimeout(function() {
       window.location.replace('/home'); // i can't go back to success page by pressing the back button
    },3000);
}


wild coder.. 8

您可以在脚本部分中为Button click事件编写Url.Action,如下所示.

function onclick() {
        location.href = '@Url.Action("Index","Home")';
    }


大智慧.. 8

如果您更喜欢使用纯JavaScript,我意识到在Firefox 中使用document.location.href = "https://example.com"window.location.href = "https://example.com"导致兼容性问题.而是尝试使用:

location.href = "https://example.com";
location.replace("http://example.com");

在我的情况下已经解决了这个问题.祝好运!


devst3r.. 6

使用jQuery/JavaScript重定向用户

通过在jQuery或JavaScript中使用location对象,我们可以将用户重定向到另一个网页.

在jQuery中

将用户从一个页面重定向到另一个页面的代码是:

var url = 'http://www.example.com';
$(location).attr('href', url);

在JavaScript中

将用户从一个页面重定向到另一个页面的代码是:

var url = 'http://www.example.com';
window.location.href = url;

要么

var url = 'http://www.example.com';
window.location = url;


dnxit.. 5

这就是我使用它的方式.

   window.location.replace('yourPage.aspx');   
   // If you're on root and redirection page is also on the root

   window.location.replace(window.location.host + '/subDirectory/yourPage.aspx');

   // If you're in sub directory and redirection page is also in some other sub directory.


归档时间:

查看次数:

5518018 次

最近记录:

10 月 前