2012-03-02 89 views
0

我有一個特定的問題。我嘗試通過javascript函數創建動態html代碼,並將其放入dojo對話框內容中。我的javascript函數是:dojo對話框動態內容2

function doPushButton(doc, id, action, title, imgRef, text, width, style) { 
var tabIndex; 
if(arguments.length > 8) 
     tabIndex = arguments[8]; 
    var accessKey; 
    if(arguments.length > 9) 
     accessKey = arguments[9]; 
    jt_docWrite('<div class="' + style + '" style="cursor: pointer' + (width > 0 ? ';width:' + width + 'px' : '') + '"', doc); 
    if(id != null) 
     jt_docWrite(' id="' + id + '"', doc); 
    if(tabIndex != null) 
     jt_docWrite(' tabindex="' + tabIndex + '"', doc); 
    if(accessKey != null) 
     jt_docWrite(' accesskey="' + accessKey + '"', doc); 
    jt_docWrite(' title="' + title + '" onclick="' + action + '">', doc); 
    if(imgRef != null) 
     jt_docWriteln('<img class="label_icon right" src="' + imgRef + '"/>', doc); 
    if(text != null) 
     jt_docWriteln('<span class="label">' + text + '</span>', doc); 
    jt_docWriteln('</div>', doc); 
} 

其中jt_docWrite和jt_docWriteln是JS功能:

function jt_docWrite() { 
    if (arguments.length == 1) { 
     document.write(arguments[0]); 
    } 

    if (arguments.length == 2) { 
     arguments[1].write(arguments[0]); 
    } 
} 

這doPushButton()函數調用林在道場dialog.create:

require(["dojo/ready", "dojo/parser"], function(ready, parser){ 
      ready(function(){ 
       var dialog = dijit.byId("myDlg"); 
       dojo.create('div', { 
        innerHTML: "Hello" 
        }, dialog.containerNode); 
        var div = dojo.create('div', {}, dialog.containerNode); 
        dojo.create('div', { 

        innerHTML: doPushButton(document, "yes", "doConfirm()", "", "../image/accept.gif", Res_yes_title, 0, "push_button") 

        }, div); 
        dialog.show(); 
      }); 

當我使用我的doPushButton()函數之前在我的HTML頁面,如<script> doPushButton(document, "yes", "doConfirm()", "", "../image/accept.gif", Res_yes_title, 0, "push_button") </script>,它的工作很好,但現在我想把它放在dojo對話框中,它不起作用,並且此函數的結果是「undefine」。有人能幫助我什麼是錯誤的?非常感謝。

米羅

回答

0

doPushButton方法從不返回一個值。它調用jt_docWriteln,它將包含的html寫入文檔。 innerHTML屬性的值必須是NodeString(可能是HTML),並且您傳遞它undefined,因爲doPushButton不返回任何內容。