Facebook登录和按钮javascript冲突

时间:2015-08-18 01:15:20

标签: javascript jquery html facebook

这是登录这里使用的javascript

<script> logInWithFacebook = function() {
FB.login(function(response) {
  if (response.authResponse) {
    alert('You are logged in & cookie set!');
    // Now you can redirect the user or do an AJAX request to
    // a PHP script that grabs the signed request from the cookie.
  } else {
    alert('User cancelled login or did not fully authorize.');
  }
});
return false;
};
 window.fbAsyncInit = function() {
FB.init({
  appId: '1166049000075578',
  cookie: true, // This is important, it's not enabled by default
  version: 'v2.4'
});
};

(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));
//Onclick for fb login
jQuery(document).ready(function($) {
$('#facebook1').click(function(e) {
FB.login(function(response) {
  if(response.authResponse) {
      parent.location ='Someurl'; //redirect uri after closing the facebook popup
  }
 },{scope:'email,public_profile,user_friends'}); //permissions for facebook
 });

 });</script>

现在这是使用的 facbook Like按钮脚本

<script>(function(d, s, id) {
 var js, fjs = d.getElementsByTagName(s)[0];
 if (d.getElementById(id)) return;
 js = d.createElement(s); js.id = id;
 js.src =    "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.4&appId=1166049000075578   ";
 fjs.parentNode.insertBefore(js, fjs);
 }(document, 'script', 'facebook-jssdk'));</script>

登录脚本和类似按钮脚本都需要出现在同一页面上如果我只使用像按钮javacript和html代码然后工作正常
但是在同一页面上同时使用脚本(登录喜欢)会产生问题
当我升级到Facebook SDKv5时Website where it is used

,问题就出现了

2 个答案:

答案 0 :(得分:0)

如果您查看代码,您会发现代码剪切的名为“facbook Like button script”的代码只是其他代码的一个小部分,其中名为“Login javascript”。

这意味着如果您已经拥有Facebook登录工作的代码,那么您可以省略需要为类似按钮添加的代码的<script>部分。

答案 1 :(得分:-1)

这组代码重复两次

WebElement element = driver.findElement(By.cssSelector("#IconButton > input.IconButtonDisplay"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);