我有一个页面,用户可以点击该页面将邀请发送给他的朋友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控制台但没有发现错误
答案 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文件中,它将运行。