Vaadin中的嵌入式推文

时间:2013-03-14 21:24:10

标签: java twitter vaadin

我想在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>&mdash; 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"} ) 在我的源代码的开头。它会拾取文件,但根本不会设置嵌入式推文的样式。我想知道是否有人这样做过。

2 个答案:

答案 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指南(故障排除)。