我想在Vaadin v7中发送embed推文:
Label oneTweet = new Label();
String s = "<blockquote class=\"twitter-tweet\"><p>Four more years. <a href=\"http://t.co/bAJE6Vom\" title=\"http://twitter.com/BarackObama/status/266031293945503744/photo/1\">twitter.com/BarackObama/st…</a></p>— Barack Obama (@BarackObama) <a href=\"https://twitter.com/BarackObama/status/266031293945503744\">November 7, 2012</a></blockquote>";
s = s + "<script async src=\"http://platform.twitter.com/widgets.js\" charset=\"utf-8\"></script>";
oneTweet.setValue(s);
oneTweet.setContentMode(ContentMode.HTML);
layout.addComponent(oneTweet);
问题是,Vaadin没有拿起脚本文件widget.js
。我尝试通过推杆强迫它
@JavaScript( {"http://platform.twitter.com/widgets.js"} )
在我的源代码的开头。它会拾取文件,但根本不会设置嵌入式推文的样式。我想知道是否有人这样做过。
答案 0 :(得分:1)
是否适用于ContentMode Label.CONTENT_XHTML 或 Label.CONTENT_RAW ?想到的另一个猜测是将脚本包含在gwt.xml文件中并从Label中取出。祝你好运。
答案 1 :(得分:1)
如果其他人有同样的问题,我在加载推文结束时通过调用它解决了这个问题:
String 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=\"http://platform.twitter.com/widgets.js\";fjs.parentNode.insertBefore(js,fjs);}}(document,\"script\",\"twitter-wjs\");";
Page.getCurrent().getJavaScript().execute(script);
javascript片段来自Twitter指南(故障排除)。