<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-46  評(píng)論-64  文章-2  trackbacks-0

    ?

    使用DWR做一個(gè)demo的時(shí)候,總是報(bào)出 JS Alert: Max depth exceeded when dereferencing ...


    function ?update()? {
    ?
    // var?name?=?dwr.util.getValue("demoName");
    ? var ?name? = ?document.getElementById( " demoName " );
    ???UpdateText.sayHello(name,?callback);
    }


    function ?callback(data)
    {
    ?
    var ?d? = ?data? + ? " ? " ;
    ?dwr.util.setValue(
    " demoReply " ,?d);
    }

    用上面那一句 var?name?=?dwr.util.getValue("demoName"); 的時(shí)候就不會(huì)報(bào)出這個(gè)錯(cuò)誤
    看了一下util.js的源碼,發(fā)現(xiàn)其實(shí)它返回的是??document.getElementById("xxx").value ,所以我們這里修改為
    var?name?=?document.getElementById("demoName").value;?這就和 dwr.util.getValue("demoName") 等價(jià)了


    util.js 關(guān)于getValue函數(shù)的源碼?

    /* *
    ?*?Read?the?current?value?for?a?given?HTML?element.
    ?*?@see?http://getahead.org/dwr/browser/util/getvalue
    ?
    */

    dwr.util.getValue?
    = ? function (ele,?options)? {
    ??
    if ?(options? == ? null )?options? = ? {} ;
    ??
    var ?orig? = ?ele;
    ??
    if ?( typeof ?ele? == ? " string " )? {
    ????ele?
    = ?dwr.util.byId(ele);
    ????
    // ?We?can?work?with?names?and?need?to?sometimes?for?radio?buttons,?and?IE?has
    ???? // ?an?annoying?bug?where?getElementById()?returns?an?element?based?on?name?if
    ???? // ?it?doesn't?find?it?by?id.?Here?we?don't?want?to?do?that,?so:
    ???? if ?(ele? && ?ele.id? != ?orig)?ele? = ? null ;
    ??}

    ??
    var ?nodes? = ? null ;
    ??
    if ?(ele? == ? null )? {
    ????
    // ?Now?it?is?time?to?look?by?name
    ????nodes? = ?document.getElementsByName(orig);
    ????
    if ?(nodes.length? >= ? 1 )?ele? = ?nodes.item( 0 );
    ??}

    ??
    if ?(ele? == ? null )? {
    ????dwr.util._debug(
    " getValue()?can't?find?an?element?with?id/name:? " ? + ?orig? + ? " . " );
    ????
    return ? "" ;
    ??}


    ??
    if ?(dwr.util._isHTMLElement(ele,? " select " ))? {
    ????
    // ?Using?"type"?property?instead?of?"multiple"?as?"type"?is?an?official?
    ???? // ?client-side?property?since?JS?1.1
    ???? if ?(ele.type? == ? " select-multiple " )? {
    ??????
    var ?reply? = ? new ?Array();
    ??????
    for ?( var ?i? = ? 0 ;?i? < ?ele.options.length;?i ++ )? {
    ????????
    var ?item? = ?ele.options[i];
    ????????
    if ?(item.selected)? {
    ??????????
    var ?valueAttr? = ?item.getAttributeNode( " value " );
    ??????????
    if ?(valueAttr? && ?valueAttr.specified)? {
    ????????????reply.push(item.value);
    ??????????}

    ??????????
    else ? {
    ????????????reply.push(item.text);
    ??????????}

    ????????}

    ??????}

    ??????
    return ?reply;
    ????}

    ????
    else ? {
    ??????
    var ?sel? = ?ele.selectedIndex;
    ??????
    if ?(sel? != ? - 1 )? {
    ????????
    var ?item? = ?ele.options[sel];
    ????????
    var ?valueAttr? = ?item.getAttributeNode( " value " );
    ????????
    if ?(valueAttr? && ?valueAttr.specified)? {
    ??????????
    return ?item.value;
    ????????}

    ????????
    return ?item.text;
    ??????}

    ??????
    else ? {
    ????????
    return ? "" ;
    ??????}

    ????}

    ??}


    ??
    if ?(dwr.util._isHTMLElement(ele,? " input " ))? {
    ????
    if ?(ele.type? == ? " radio " )? {
    ??????
    if ?(nodes? && ?nodes.length? >= ? 1 )? {
    ????????
    for ?( var ?i? = ? 0 ;?i? < ?nodes.length;?i ++ )? {
    ??????????
    var ?node? = ?nodes.item(i);
    ??????????
    if ?(node.type? == ?ele.type)? {
    ????????????
    if ?(node.checked)? return ?node.value;
    ??????????}

    ????????}

    ??????}

    ??????
    return ?ele.checked;
    ????}

    ????
    if ?(ele.type? == ? " checkbox " )? {
    ??????
    if ?(nodes? && ?nodes.length? >= ? 1 )? {
    ????????
    var ?reply? = ?[];
    ????????
    for ?( var ?i? = ? 0 ;?i? < ?nodes.length;?i ++ )? {
    ??????????
    var ?node? = ?nodes.item(i);
    ??????????
    if ?(node.type? == ?ele.type)? {
    ????????????
    if ?(node.checked)?reply.push(node.value);
    ??????????}

    ????????}

    ????????
    return ?reply;
    ??????}

    ??????
    return ?ele.checked;
    ????}

    ????
    return ?ele.value;
    ??}


    ??
    if ?(dwr.util._isHTMLElement(ele,? " textarea " ))? {
    ????
    return ?ele.value;
    ??}


    ??
    if ?(dwr.util._shouldEscapeHtml(options))? {
    ????
    if ?(ele.textContent)? return ?ele.textContent;
    ????
    else ? if ?(ele.innerText)? return ?ele.innerText;
    ??}

    ??
    return ?ele.innerHTML;
    }
    ;
    posted on 2007-08-12 17:54 jht 閱讀(4218) 評(píng)論(5)  編輯  收藏 所屬分類(lèi): J2EEDWR

    評(píng)論:
    # re: [DWR]Max depth exceeded when dereferencing 2008-05-27 15:40 | 哈郎
    哥們,謝了哈,馬上就解決了,就是不大清楚原因  回復(fù)  更多評(píng)論
      
    # re: [DWR]Max depth exceeded when dereferencing 2008-10-28 17:24 | liuqingyin
    我也有一個(gè)這樣得錯(cuò),改了,還報(bào)這個(gè)錯(cuò)  回復(fù)  更多評(píng)論
      
    # re: [DWR]Max depth exceeded when dereferencing 2008-12-01 22:39 | 龍紋
    謝謝哥們 問(wèn)題解決了
      回復(fù)  更多評(píng)論
      
    # re: [DWR]Max depth exceeded when dereferencing[未登錄](méi) 2011-03-31 16:59 | 菜鳥(niǎo)
    頂 我今天也遇到這個(gè)問(wèn)題  回復(fù)  更多評(píng)論
      
    # re: [DWR]Max depth exceeded when dereferencing 2011-09-01 11:46 | tbw
    問(wèn)題解決了 謝謝  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 久久久久国产成人精品亚洲午夜| 成人免费无码精品国产电影| 三年片在线观看免费观看高清电影| h视频在线观看免费网站| 人妻视频一区二区三区免费| 国产免费观看网站| 亚洲情综合五月天| 亚洲欧洲日韩国产| 亚洲a无码综合a国产av中文| 一个人免费观看www视频 | 老司机亚洲精品影院| 亚洲国产精品无码久久九九大片| 免费看黄福利app导航看一下黄色录像| 久久久久免费视频| 永久黄色免费网站| 免费v片在线观看无遮挡| 亚洲Av综合色区无码专区桃色 | 亚洲日本va在线视频观看| 亚洲熟妇无码久久精品| 激情小说亚洲色图| 免费播放在线日本感人片| 免费a级毛片无码a∨蜜芽试看| mm1313亚洲精品无码又大又粗| 亚洲AV无码一区二区二三区软件 | 亚洲成人福利在线观看| 在线观看亚洲视频| 一级毛片**不卡免费播| 国产美女做a免费视频软件| 亚洲AV中文无码乱人伦下载 | 成人自慰女黄网站免费大全| 国产99视频精品免费观看7| 亚洲精品国精品久久99热| 亚洲成a人片在线观| 一级大黄美女免费播放| 国产妇乱子伦视频免费| 久久久久亚洲av成人无码电影| 亚洲国产精品综合久久2007| 国产99视频精品免费视频76| 99在线视频免费观看视频| 区久久AAA片69亚洲| 亚洲精品国产av成拍色拍|