gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:08:05 24 4
gpt4 key购买 nike

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

这是属性文件:

#Facebook APP ID & Version

#My Local
facebookShareAppId = xxxxxxxxxxx

#UAT
#facebookShareAppId = xxxxxxxxxxx

#QA
#facebookShareAppId = xxxxxxxxxxx


facebookShareVersion = v2.7

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

我使用我们的实用程序从 Controller 获取属性的值,我的 Controller 方法具有以下内容:

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 中的 Conceal 元素添加了版本和 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 :)

关于javascript - Facebook javascript SDK 从属性文件到 jsp 的共享版本不起作用 [webapp],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com