无法使用javascript重定向用户

时间:2016-05-14 16:45:30

标签: javascript jquery

我有一个页面,用户可以点击该页面将邀请发送给他的朋友gmail

这是按钮

<button onclick="TwkInvite()" class="btn">
    <i class="fa fa-google"></i>Import your Gmail Contacts
</button>

这是javascript部分

function TwkInvite() {
    alert('function is called');
    window.location.href = "https://accounts.google.com/o/oauth2/auth?client_id=*********-*************.apps.googleusercontent.com&redirect_uri=https://www.example.com/app/invite-send&scope=https://www.google.com/m8/feeds/&response_type=code";
}

我已经尝试过window.location.href,window.location,location.href的一切

此功能正在执行,因为警报也已执行,但我不知道为什么它不会重定向到Google网站,每当我点击按钮时页面都会刷新

没有打印错误,我也检查了mozilla控制台但没有发现错误

4 个答案:

答案 0 :(得分:2)

您的问题是控制台中没有错误,这意味着导致重定向的是默认操作。它可以为我们所知道的所有人提交表格。这将阻止父表单提交,如果有的话。

您可以使用return false来防止这种情况发生。

<button onclick="TwkInvite();return false;" class="btn">

答案 1 :(得分:1)

您似乎并没有阻止该按钮重新加载该页面,至少它在Chrome中是这样做的。为防止这种情况发生,您必须阻止触发默认事件。

像这样定义你的按钮,所以你将事件参数转发给你的处理程序:

<button onclick="TwkInvite(event)" class="btn">

现在阻止使用event.preventDefault()

进行默认事件处理
function TwkInvite(e) {
    alert('function is called');
    window.location.href = "https://accounts.google.com/o/oauth2/auth?client_id=*********-*************.apps.googleusercontent.com&redirect_uri=https://www.example.com/app/invite-send&scope=https://www.google.com/m8/feeds/&response_type=code";

    // The event is in window.event in IE
    var e =  e || window.event; 

    // e.prevenDefault() for modern browsers, e.returnValue for IE
    e.preventDefault ? e.preventDefault() : (e.returnValue = false);
}

答案 2 :(得分:0)

看起来像权限问题。

当我把它变成一个片段时,我在控制台中遇到了这个错误:

Refused to display 'https://accounts.google.com/o/oauth2/auth?client_id=*********-*************…/app/invite-send&scope=https://www.google.com/m8/feeds/&response_type=code' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

function TwkInvite() {    
    window.location.href = "https://accounts.google.com/o/oauth2/auth?client_id=*********-*************.apps.googleusercontent.com&redirect_uri=https://www.example.com/app/invite-send&scope=https://www.google.com/m8/feeds/&response_type=code";
}
<button onclick="TwkInvite()" class="btn">
    <i class="fa fa-google"></i>Import your Gmail Contacts
</button>

答案 3 :(得分:0)

所有代码都很好。 我尝试以下操作并运行:

<script type="text/javascript">
        function TwkInvite() {
        alert('function is called');
        window.location.href = "https://accounts.google.com/o/oauth2/auth?client_id=*********-*************.apps.googleusercontent.com&redirect_uri=https://www.example.com/app/invite-send&scope=https://www.google.com/m8/feeds/&response_type=code";
    }
    </script>

或将代码包含在特定的javascript文件中,它将运行。