2011-11-25 70 views
0

我想將谷歌小工具添加到FlowPanel(或HTMLPanel)中,但是在加載主機頁之後,它會從我的頁面導航並在新頁面中顯示小工具,如果我單擊瀏覽器的後退按鈕會加載主機頁面,並再次導航到新頁面以顯示小工具。無法將外部腳本添加到gwt小部件

下面是代碼:

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

爲了解決這個問題,一般來說,請查看com.google.gwt.core.client.ScriptInjector類 - 它有兩種方法允許您以跨瀏覽器的方式將腳本注入頁面。您嘗試插入腳本內容的方式不適用於跨瀏覽器。

特別注意你的小工具的情況下,我猜你正在加載的腳本有代碼,以防止它被加載到另一個頁面。您是否嘗試過使用引用該腳本標記的純HTML頁面?如果發生同樣的事情,請參閱是否可以在腳本文件中查看頁面重新分配的位置window.location

+0

感謝提到ScriptInjector,我會看看。小工具代碼非常簡單,它來自www.google.com/ig/directory?synd=open&cat=news上的公共存儲庫,我試圖將其加載到純html頁面中,並且按預期工作,無重定向,腳本創建一個iframe並將小工具加載到其中。 – Zhaidarbek