簡體   English   中英

從不是檢票口組件的元素中調用檢票口

[英]call wicket from the element that is not wicket-component

我正在使用js-lib轉換為富編輯器(帶有選項“ bold”,“ italic”等)。

RichEditor包含按鈕UploadImage,我可以更改此按鈕的回調:

function startUploadingImage(field_name, url, type, win) {
    //
}

我已經創建了用於選擇文件的模式窗口。 因此,如何從函數“ startUploadingImage”中調用檢票口?

我嘗試過這樣的事情:


// Java-script:
function startUploadingImage(field_name, url, type, win) {
    wicketAjaxGet('..?1-1.IBehaviorListener.0-&action=uploadImage');
}

// and Wicket (class extends WebPage):

clickBehavior = new AbstractDefaultAjaxBehavior() {
    @Override
    protected void respond(AjaxRequestTarget target) {
        IRequestParameters requestParameters = getRequestCycle().getRequest().getRequestParameters();
        String action = requestParameters.getParameterValue("action").toString();
        if (action.equals("uploadImage"))
            modal1.show(target);
    }
};
add(clickBehavior);

但這是行不通的。 我在檢票口乞討,所以不打太多。

您需要將AbstractDefaultAjaxBehavior網址傳遞給javascript,以便可以對其進行調用。 我這樣做的一種巧妙方法是將新的數據標簽添加到向其添加AjaxBehavior的組件的html中。 您可以通過重寫AbstractDefaultAjaxBehavior的onComponentTag方法來實現。

@Override
protected void onComponentTag(ComponentTag tag) 
{       
    tag.put("callback-url", behavior.getCallbackUrl());     
    super.onComponentTag(tag);
}

現在在javascript中,您要做的就是找到callback-url標記並獲取其值,這將為您提供要調用的url。

wicketAjaxGet($element.attr('callback-url'), function() { }, function() { });  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM