我正在通过JS使用谷歌登录,看来我的代码获取数据两次.我不确定为什么会这样.
当我点击"使用Google登录"按钮时,它会向用户吐出(console.log(result))数据.然后出现提示,要求我选择我的帐户(我登录了几个谷歌帐户).当我点击我想要的帐户时,代码会再次吐出该用户数据.
为什么会这样?这是一个问题,因为在我吐出数据的地方,我想做一个ajax调用来验证用户,然后重定向它们.所以从本质上说,它试图这样做两次 - 这并不酷,如果我不想使用凭据登录google在第一次转发时回传?
(function() {
var po = document.createElement('script');
po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
function googleLogin() {
var additionalParams = {
'callback': googleCallback
};
gapi.auth.signIn(additionalParams);
}
function googleCallback(authResult) {
if (authResult['status']['signed_in']) {
gapi.client.load('oauth2', 'v2', function() {
gapi.client.oauth2.userinfo.get().execute(function(resp) {
console.log(resp);
})
});
} else {
console.log('Sign-in state: ' + authResult['error']);
}
}
Run Code Online (Sandbox Code Playgroud)
更新:如果我退出所有Google帐户(除了一个且只有一个),谷歌的调用仍然是重复的.这次它登录,我看到console.log()两次输出数据.访问令牌是相同的.
更新2: console.log(resp)输出两次
更新3:更多说明:

javascript google-api google-authentication google-api-client google-oauth
没有太多运气.我正在尝试确定var是否为空.
$('#content').mouseup(function() {
var selection = getSelected();
if (typeof(selection) !=='undefined') {
alert(selection);
}
});
Run Code Online (Sandbox Code Playgroud)
这样做是抓取用户选择的任何文本 - 但它显示一个空警报,即使用户只是在div上鼠标.
当单击鼠标时,我试图在光标所在的任何位置放置一个 div。因此,当我使用 e.PageX 和 e.pageY 时,它实际上将我的 div 放置得远低于预期。有任何想法吗?
var mouseX = e.pageX;
var mouseY = e.pageY;
$("#moverdiv").css({'top':mouseY,'left':mouseX});
Run Code Online (Sandbox Code Playgroud) 我在下面有一个字符串,我想删除尾随,
但我正在努力.有帮助吗?
This is a string<br>
next line<br>
Run Code Online (Sandbox Code Playgroud)
所以在我的函数之后,字符串应该是
This is a string<br>
next line
Run Code Online (Sandbox Code Playgroud)
以下执行此代码似乎不起作用.嗯,它有效,但它没有清除两个尾随的休息时间.
mystring=mystring.replace(/<br>$/,'');
Run Code Online (Sandbox Code Playgroud)
所以如果我的字符串实际上是:
This is a string<br>
next line<br>
<br>
Run Code Online (Sandbox Code Playgroud)
那么上面的代码就会返回
This is a string<br>
next line
<br>
Run Code Online (Sandbox Code Playgroud) 在最长的时间里,我一直在输出注释并使用下面的函数来放入换行符.它一直很好用.
echo str_replace(chr(13),"<br />",$com_text);
Run Code Online (Sandbox Code Playgroud)
但是,到目前为止,这段代码还没有使用新的评论.它仍然可以与数据库中的旧注释一起使用.但是,任何提交到数据库中的新内容都没有正确输出.
没有代码发生变化,我知道.有什么建议?
我试图在用户提交的3-4句段中识别专有名词.我有一个有缺陷的功能,因为我有一个主持人团队验证几乎所有东西.
传入段落的示例如下.
尼克斯威舍本垒打詹姆斯盾加键的五奔跑在第一局和纽约洋基队爆出在周二晚上击败坦帕湾8-3,在美联东区在光芒打开一个2 1/2游戏领先.
我希望函数能够使用以下关键字/专有名词.
Nick Swisher,James Shields,纽约洋基队,坦帕湾,Rays,AL East
我想我可以爆炸字符串并用空格分隔单词.然后我会检查每个单词,看看第一个字母是否大写.如果是,请退货.如果没有,请转到下一个单词.
但是多字关键词/专有名词呢?如何在已找到的第一个字母加盖字后检查单词的功能?
所以该功能会找到尼克,但我怎么告诉它检查下一个字呢?因此,检查下一个是否有上限,如果是,请返回Nick Swisher.如果没有,就回到尼克身边.
更进一步,如果这是一个3字的短语怎么办?找到新的,约克被发现,我如何才能找到洋基队呢?
我有一个艺术家表和一个艺术家别名表。Artist_alias 包含艺术家的所有可能名称。
我的查询,用于获取多个艺术家的艺术家数据,如下所示:
$sql = "SELECT artist.artist_id, artist.artist_name
FROM artists artist
WHERE artist.artist_id IN (3,9,500);";
Run Code Online (Sandbox Code Playgroud)
现在,我还想包括任何已知的别名,可以是 1 或 X。我可以在上面的查询中获取此信息吗?或者这是一个单独的查询?
我正在考虑做类似的事情:
$sql = "SELECT artist.artist_id, artist.artist_name,
(SELECT * FROM artists_alias WHERE [???])....";
Run Code Online (Sandbox Code Playgroud)
但是我收到错误消息“子查询返回多于 1 行”——我是否让这比它更复杂?这可以是一个查询吗?
我很乐意将别名逗号分开,因此例如返回行可能看起来像:3,“本折叠五”,“本折叠五,本折叠,本折叠五,折叠五”
我试图清除一个文本框时就将其聚焦,仅此而已。只要有重点,我就可以清除该文本框,但这变成了一个问题。我只希望它在首次聚焦时就清楚。
因此,在页面加载时,文本框会显示“在此搜索”-一旦用户在内部单击,“搜索此处”就会消失,文本框将变为空白。用户可以继续键入他们的搜索查询。
但是,如下所示,我的代码只是不断清除文本框。有任何想法吗?
$('input[type=text]').focus(function() {
$(this).val('')
});
Run Code Online (Sandbox Code Playgroud) 我想要做的是更改div中div的内容.我似乎无法访问它.
dialog是父级,而dialogChange是子级.
当我做:
$("#dialog").text("新文本");
它将替换父对话框中的所有内容.
但当我这样做时:
$("#dialogChange").text("新文本");
没有什么变化.
那么如何在父母中访问孩子呢?
由于版权法和许可协议,我无法允许复制+粘贴我们正在显示的文本的某些部分.因此禁用选择并禁用右键单击.我知道,这很糟糕,但遗憾的是它是玩游戏并保持业务的一部分.
使用jquery,我已经能够允许用户逐行选择文本 - 也就是说,他们将鼠标悬停在一行文本上,它会突出显示,如果他们点击它,那么它会被永久地选中,从而导致"复制"按钮出现.
我想要这个,但允许选择部分行.因此,如果用户只想从该行复制两个单词,他们就可以.更像是自然选择过程.
我很难做到这一点.在我的整行解决方案中,我在每行附加div.但这对于部分线路似乎并不高效?我是否必须跨越每个单词?
还有其他想法吗?
我有一个如下所示的字符串.我想循环通过每一行(行分隔<br />)并计算总行数.我怎样才能做到这一点?
This is line 1 <br />
And Line 2 <br />
And and line 3! <br />
Run Code Online (Sandbox Code Playgroud)
我的输出应该是3
我遇到回调问题主要是因为我不明白他们是如何工作的(或者应该工作).
我有我的功能:
function checkDuplicateIndex(values, callback) {
$.ajax({
type: "POST",
url: url,
data: "command=checkIndexAlbumTracks&" + values,
dataType: "html",
success: function(data){
var returnValue = data.d;
callback(returnValue);
}
});
}
Run Code Online (Sandbox Code Playgroud)
然后在提交事件中,如何正确调用checkDuplicateIndex以便我可以提醒()值?