gpt4 book ai didi

javascript - Facebook 按钮未在 GWT Element.setInnerHTML() 中显示。未显示样式的推文按钮

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

我在 GWT 上使用此元素成功地在我的网络应用程序上添加和显示 HTML 代码。

但是,当我尝试添加“Facebook like button”代码时,它根本没有显示:

Element adContainerDiv = getView().getFooter().getElement(); 
adContainerDiv.setInnerHTML("<div class='fb-like' data-href='http://www.example.com' data-send='false' data-layout='button_count' data-width='100' data-show-faces='false' data-action='recommend' data-font='arial'></div>");

此代码位于<body> 的开头:

    <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_GB/all.js#xfbml=1&appId=1265448483273";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<!-- END Facebook button function -->

类似的事情发生在“Tweet 按钮”代码中,其中显示纯文本链接,没有任何样式:

Element adContainerDiv = getView().getFooter().getElement();
adContainerDiv.setInnerHTML("<a href=\"https://twitter.com/share\" class=\"twitter-share-button\">Tweet</a>");

<body> 之后我有这段代码(我也在 setInnerHTML 上尝试过,但仍然不起作用:

<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

这是它在 DOM 中显示 <body></body> 之间的 Tweet 按钮的方式。 :

<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_GB/all.js#xfbml=1&appId=13592647473";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div style="top:0PX;height:60PX;width:1000PX;position: relative;" id="ur39jgf03kd">
<a href="https://twitter.com/share" class="twitter-share-button"
data-via="example_com">Tweet</a></div>

有什么想法吗?

最佳答案

我不工作的原因很明显——默认情况下,facebook/twitter 按钮期望所有按钮在 facebook/twitter 脚本加载之前创建。因此,您应该在创建新按钮并将它们附加到 dom 后通知那些外部库。

快速搜索"Dynamically add twitter button using javascript"给我们 way如何为 Twitter 做到这一点:

twttr.widgets.load();

所以我们需要将它包装到一些 GWT 类的本地方法中(这称为 JSNI ):

  public static native void refreshTwitterButtons()/*-{
$wnd.twttr.widgets.load();
}-*/;

剩下的就是在创建并附加到 DOM 推特按钮 html 代码后调用此函数。对于facebook at 基本上是相同的工作流程,你google "Dynamically add facebook button using javascript" , 你找出哪个 API您必须调用,为它创建适当的 native 方法。

关于javascript - Facebook 按钮未在 GWT Element.setInnerHTML() 中显示。未显示样式的推文按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13226992/

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