1

我正在尝试在 Vaadin v7 中嵌入一条推文:

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

4

2 回答 2

1

它是否适用于 ContentMode Label.CONTENT_XHTMLLabel.CONTENT_RAW?想到的另一个猜测是将脚本包含在 gwt.xml 文件中,然后从标签中取出。祝你好运。

于 2013-03-15T08:07:48.337 回答
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的指南(疑难解答)。

于 2013-03-18T22:36:58.613 回答