从属性文件到jsp的Facebook javascript SDK共享版本不起作用[webapp]

埃德·斯尼珀

我正在使用属性文件来管理应用程序ID和版本。

这是属性文件:

#Facebook APP ID & Version

#My Local
facebookShareAppId = xxxxxxxxxxx

#UAT
#facebookShareAppId = xxxxxxxxxxx

#QA
#facebookShareAppId = xxxxxxxxxxx


facebookShareVersion = v2.7

===========================

我正在使用我们的实用程序从控制器获取属性的值,我的控制器方法具有以下特点:

String facebookAppId = PropertyFileReader.getProperty(PropertyFileConstants.PROP_SOCIALNETWORK, "facebookShareAppId");
String facebookShareVersion = PropertyFileReader.getProperty(PropertyFileConstants.PROP_SOCIALNETWORK, "facebookShareVersion");

page.addObject("facebookAppId", facebookAppId);
page.addObject("facebookShareVersion", facebookShareVersion);
return page;

===========================

然后,当我使用$ {facebookAppId}和$ {facebookShareVersion}检查它时,我的JSP会获取值。

<input id="facebookAppId" type="hidden" value = "${facebookAppId}"/>
<input id="facebookShareVersion" type="hidden" value = "${facebookShareVersion}"/>

当我尝试记录它时,它将显示我的facebookAppId和facebookShareVersion的当前值。(当前版本为“ v2.7”)

=====================

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : ${facebookAppId},
      xfbml      : true,
      version    : ${facebookShareVersion}
    });
  };

</script>

当我键入此命令时,它给我一个错误:“未捕获的错误:指定了无效的版本”,但是当我将版本更改为静态字符串“ v2.7”时,它可以工作。关于如何解决这个问题的任何想法?

我也有这个(我实际上不知道它的作用):

<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";
              fjs.parentNode.insertBefore(js, fjs);
            }(document, 'script', 'facebook-jssdk'));
            </script>
                            <!-- Your share button code -->
            <div class="fb-share-button" data-href="http://www.google.com/" data-layout="button" data-size="large" data-mobile-iframe="true"></div>

编辑:我添加了上面的代码

埃德·斯尼珀

删除了第二个SDK嵌入,并将其转移到我的Javascript中,对js.src进行了调整,从JSP中的隐藏元素中添加了版本和appId,然后它开始工作。最终代码如下:

Javascript:

var appId = $("#facebookAppId").val();
var version = $("#facebookShareVersion").val();

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

JSP:

<input id="facebookAppId" type="hidden" value = "${facebookAppId}"/>
<input id="facebookShareVersion" type="hidden" value = "${facebookShareVersion}"/>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : ${facebookAppId},
      xfbml      : true,
      version    : ${facebookShareVersion}
    });
  };

</script>

现在可以从属性文件中检索版本和appId了:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Facebook共享脚本不起作用

来自分类Dev

如何从属性文件中读取足量版本

来自分类Dev

Javascript在JSP文件中不起作用

来自分类Dev

Facebook Javascript SDK重定向不起作用

来自分类Dev

Javascript:创建脚本不起作用

来自分类Dev

Facebook共享按钮在使用Javascript和Ajax的Webmethod中似乎不起作用

来自分类Dev

从html传递属性到javascript不起作用

来自分类Dev

Facebook共享不起作用

来自分类Dev

从属性文件读取

来自分类Dev

单独文件中的Javascript不起作用

来自分类Dev

外部文件中的Javascript不起作用

来自分类Dev

Javascript在html文件中不起作用

来自分类Dev

JavaScript自动加载图像脚本不起作用

来自分类Dev

使用JavaScript更改按钮文本不起作用

来自分类Dev

Blade和JavaScript-如何从属性内部的字符串中删除空格

来自分类Dev

Javascript:如何通过Regexp从属性中提取字符串

来自分类Dev

FaceBook共享在android中不起作用

来自分类Dev

Facebook共享按钮不起作用

来自分类Dev

FaceBook共享在android中不起作用

来自分类Dev

从属性文件读取的angularjs

来自分类Dev

从属性文件读取springboot问题

来自分类Dev

从属性文件创建动态xml?

来自分类Dev

在春季从属性文件读取

来自分类Dev

用于显示Facebook登录按钮不起作用的Javascript代码

来自分类Dev

Javascript Facebook API /me 电子邮件不起作用

来自分类Dev

Azure文件共享不起作用

来自分类Dev

Virtualbox文件共享不起作用

来自分类Dev

iOS iTunes 文件共享不起作用

来自分类Dev

链接到HTML文件的Javascript文件不起作用