2016-05-03 37 views
0

我得到了一個腳本段它在我們Vaadin應用程序加載,在特定的一個頁面,你在完成訂單後重定向:添加谷歌的Adwords腳本到Vaadin應用

<script type="text/javascript"> 
    var google_conversion_id = XYZ; 
    var google_conversion_language = "en"; 
    var google_conversion_format = "3"; 
    var google_conversion_color = "ffffff"; 
    var google_conversion_label = "XXXYYYZZZ"; 
    var google_conversion_value = 1.00; 
    var google_conversion_currency = "EUR"; 
    var google_remarketing_only = false; 
</script> 

<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js"> 
</script> 

<noscript> 
    <div style="display:inline;"> 
    <img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/XYZ/?value=1.00&amp;currency_code=EUR&amp;label=XXXYYYZZZ&amp;guid=ON&amp;script=0"/> 
    </div> 
</noscript> 

現在的我,在處理使用Vaadin時,我無法直接在頁面上放置該片段的問題。

  • 我試圖Vaadin的LabelContentMode.HTML一起添加此代碼塊,但它只是不添加到我的LayoutComponent
  • CustomLayout和一個使用此代碼作爲模板的特殊HTML頁面正在過濾出<script>部分。

有沒有更多的解決方案,我可以如何包括我的應用程序代碼?

回答

1

使用功能的Vaadin。

狀態類:您可以將變量從服務器端傳遞到您的javascript組件。

public class MyComponentState extends JavaScriptComponentState { 
    public String google_conversion_id = "XYZ"; 
    public String google_conversion_language = "en"; 
    public String google_conversion_format = "3"; 
    public String google_conversion_color = "ffffff"; 
    public String google_conversion_label = "XXXYYYZZZ"; 
    public double google_conversion_value = 1.00; 
    public String google_conversion_currency = "EUR"; 
    public boolean google_remarketing_only = false; 
} 

@JavaScript({"mycomponent-connector.js"}) 
public class MyComponent extends AbstractJavaScriptComponent { 

    @Override 
    protected MyComponentState getState() { 
     return (MyComponentState) super.getState(); 
    } 
} 

可以包括在@JavaScript註釋像多個js文件:

@JavaScript({"https://www.googleadservices.com/pagead/conversion.js", "mycomponent-connector.js"}) 

它會爲了加載這些文件。

(如果你使用maven使用資源文件夾)放在同一個包創建mycomponent-connector.js並填寫初始化函數內部組件的根:

window.com_mypackage_MyComponent = 
function() { 
    // this is your html component to fill 
    var myelement = this.getElement(); 
    // get state variables 
    var myvar = this.getState().google_conversion_label; 
    // call some library method to fill it 

}; 

有關更多信息,請參見https://vaadin.com/docs/-/part/framework/gwt/gwt-javascript.htmlhttps://vaadin.com/blog/-/blogs/vaadin-7-loves-javascript-components

相關問題