Google API sessionParams 的问题不能混合使用 JavaScript & JQuery
Troubles with Google API sessionParams not working mixed JavaScript & JQuery
我正在尝试使这段代码工作,但它不工作,所以我需要你的帮助。
我希望它检查是否有人登录到 Gmail,如果是,则强制他使用 Gmail 作为 mailto 客户端,如果没有,则使用默认的 mailto 客户端。
我以前的版本在那里,它或多或少地工作:
http://www.pazaak.nazwa.pl/projekty/gmail/index2.html
但我被要求重写为jQuery。我创建了这样的东西:
(function () {
var po = document.createElement("script");
po.type = "text/javascript"; po.async = true;
po.src = "https://apis.google.com/js/client:plusone.js?onload=OnLoadCallback";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(po, s);
})();
$( document ).ready(function(){
var sessionParams = {
'client_id': 'myclientID',
'session_state': null
}
$( ".mail2" ).click(function(e){
console.log('test');
gapi.auth.checkSessionState(sessionParams, $(function(stateMatched) {
if (stateMatched == true) {
console.log('jfgh');
return true;
} else {
e.preventDefault();
console.log('g');
window.open("https://mail.google.com/mail/u/0/#inbox?compose=new");
return false;
}
}));
});
});
然而还是有些不对劲。我怀疑主要问题是 SessionParams 无法正常工作。我在网上找到了另一个带有 SessionParams 的代码,但不能 post 因为我需要更多的声誉才能放置 2 个链接。正如我上面所说,我需要在 jQuery.
中包含一些代码
您将回调包装在 $()
中,这是不正确的:
gapi.auth.checkSessionState(sessionParams, function (stateMatched) {
if (stateMatched == true) {
console.log('jfgh');
return true;
} else {
e.preventDefault();
console.log('g');
window.open("https://mail.google.com/mail/u/0/#inbox?compose=new");
return false;
}
});
我正在尝试使这段代码工作,但它不工作,所以我需要你的帮助。 我希望它检查是否有人登录到 Gmail,如果是,则强制他使用 Gmail 作为 mailto 客户端,如果没有,则使用默认的 mailto 客户端。 我以前的版本在那里,它或多或少地工作: http://www.pazaak.nazwa.pl/projekty/gmail/index2.html
但我被要求重写为jQuery。我创建了这样的东西:
(function () {
var po = document.createElement("script");
po.type = "text/javascript"; po.async = true;
po.src = "https://apis.google.com/js/client:plusone.js?onload=OnLoadCallback";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(po, s);
})();
$( document ).ready(function(){
var sessionParams = {
'client_id': 'myclientID',
'session_state': null
}
$( ".mail2" ).click(function(e){
console.log('test');
gapi.auth.checkSessionState(sessionParams, $(function(stateMatched) {
if (stateMatched == true) {
console.log('jfgh');
return true;
} else {
e.preventDefault();
console.log('g');
window.open("https://mail.google.com/mail/u/0/#inbox?compose=new");
return false;
}
}));
});
});
然而还是有些不对劲。我怀疑主要问题是 SessionParams 无法正常工作。我在网上找到了另一个带有 SessionParams 的代码,但不能 post 因为我需要更多的声誉才能放置 2 个链接。正如我上面所说,我需要在 jQuery.
中包含一些代码您将回调包装在 $()
中,这是不正确的:
gapi.auth.checkSessionState(sessionParams, function (stateMatched) {
if (stateMatched == true) {
console.log('jfgh');
return true;
} else {
e.preventDefault();
console.log('g');
window.open("https://mail.google.com/mail/u/0/#inbox?compose=new");
return false;
}
});