Не могу добавить внешний скрипт в виджет gwt - PullRequest
0 голосов
/ 25 ноября 2011

Я пытаюсь добавить гаджет Google в FlowPanel (или HTMLPanel), но после загрузки страницы хоста он удаляется с моей страницы и показывает гаджет на новой странице, если я нажимаю кнопку "Назад" браузера, загружается страница хоста и снова переходит на новую страницу, чтобы показать гаджет.

Вот код:

String code="here_goes_scrip_tag_for_gadget";
flowPanel.add(new HTML(SafeHtmlUtils.fromTrustedString(code)));

Что я делаю не так, пожалуйста, помогите.

UPDATE Приведенный выше код для загрузки скрипта был неверным, я изменил его следующим образом:

        FlowPanel gadgetContainer = new FlowPanel();
        Element script = Document.get().createScriptElement();
        script.setAttribute("type", "text/javascript");
        script.setAttribute("src", "http://www.gmodules.com/ig/ifr?url=http://digg.com/goog/ig.xml&up_user=&up_thumbnail=1&up_filter=0&up_num=5&up_type=popular&up_refresh=0&up_tab=0&up_offset=0&up_pagination=0&up_business=true&up_entertainment=true&up_gaming=true&up_lifestyle=true&up_offbeat=true&up_politics=true&up_science=true&up_sports=true&up_technology=true&up_world_news=true&synd=open&w=320&h=200&title=Digg&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js");
        gadgetContainer.getElement().appendChild(script);

Но это все равно не работает.

1 Ответ

1 голос
/ 26 ноября 2011

Для решения этой проблемы в общем, посмотрите класс com.google.gwt.core.client.ScriptInjector - у него есть два метода, которые позволяют вам вводить скрипты на страницу кросс-браузерным способом. То, как вы пытаетесь внедрить содержимое скрипта, не будет работать в разных браузерах.

Рассматривая конкретный случай с гаджетом, я предполагаю, что загружаемый скрипт содержит код, предотвращающий его загрузку на другую страницу. Вы пытались использовать простую HTML-страницу, которая ссылается на этот тег сценария? Если происходит то же самое, посмотрите, видите ли вы, где в файле скрипта страница переназначается window.location.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...