解析XML时出错,第337行,第62列:对实体的引用" appId"必须以&#39 ;;'结尾分隔符

时间:2014-05-10 17:45:59

标签: javascript facebook login

我试图使用javascript SDK将facebook登录添加到我的网站。

    <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&appId=1502856099942926&version=v2.0";
  fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
    </script>

当我添加上面的代码并将其保存到我的网站代码时,我收到错误: 解析XML时出错,第337行,第62列:对实体“appId”的引用必须以“;”结尾分隔符。

如何摆脱这个错误?

7 个答案:

答案 0 :(得分:0)

尝试更换&amp;网址中的字符与&amp;并看看这是否有所作为。

答案 1 :(得分:0)

在代码

之前添加以下代码
window.fbAsyncInit = function() {
    FB.init({
      appId      : 'your-app-id', // App ID
      status     : true, // login status
      xfbml      : true  // parse XFBML          
      cookie     : true, // enable cookies

    });
  };

希望这有帮助!

答案 2 :(得分:0)

试试这个

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

答案 3 :(得分:0)

而不是将所有内容放在这样的单个表达式中:

js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=1502856099942926&version=v2.0";

使用FB.init函数,这样就不会有任何问题。

只需输入您自己的配置:

<!-- facebook -->
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOU_APP_ID', // App ID
      xfbml      : true, // parse XFBML
      version    : 'v2.0' // sdk version           
    });
    // Additional initialization code here
  };
  // Load the SDK Asynchronously
  (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'));
</script>
<!-- /facebook -->

参考(详情请参阅详情):https://developers.facebook.com/docs/javascript/quickstart/v2.0

答案 4 :(得分:0)

如果您使用的是博主,请使用Blogger HTML转换器。它对我有用fb的推荐信息。 原来的:

    <div id="fb-root"></div>
<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&appId=[APP ID]&version=v2.0";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
翻译后的

&lt;div id=&quot;fb-root&quot;&gt;&lt;/div&gt;
&lt;script&gt;(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 = &quot;//connect.facebook.net/en_US/sdk.js#xfbml=1&amp;appId=[APP ID]&amp;version=v2.0&quot;;
  fjs.parentNode.insertBefore(js, fjs);
}(document, &#039;script&#039;, &#039;facebook-jssdk&#039;));&lt;/script&gt;

答案 5 :(得分:0)

亲爱的,这太简单了。 问题是你在Facebook上生成Facebook应用程序时选择HTML5。只需点击“IFRAME”即可解决您的问题。 :) 详见截图。 here is screenshot

答案 6 :(得分:0)

试试这个:

&#13;
&#13;
warden
&#13;
&#13;
&#13;