Asp.net HTML在使用javascript创建后消失

Asp.net HTML在使用javascript创建后消失,asp.net,javascript,xml,Asp.net,Javascript,Xml,解决这个问题后,我又遇到了一个问题 我动态地创建HTML元素,并给出从XML文件读取的值,这些元素总是在创建之后消失。为什么会这样?我的代码在cs文件中 script = "function OnClientDragEnd(dock, args)" + "{" + " req = false; " +

解决这个问题后,我又遇到了一个问题

我动态地创建HTML元素,并给出从XML文件读取的值,这些元素总是在创建之后消失。为什么会这样?我的代码在cs文件中

script = "function OnClientDragEnd(dock, args)" +
                            "{" +                    
                            "   req = false; " +
                            "   var isIE = false;" +
                    // branch for native XMLHttpRequest object
                            "   if(window.XMLHttpRequest && !(window.ActiveXObject)) {" +
                            "       try {" +
                            "           req = new XMLHttpRequest();" +
                            "       } catch(e) {" +
                            "           req = false;" +
                            "       }" +
                    // branch for IE/Windows ActiveX version
                            "   } else if(window.ActiveXObject) {" +
                            "       try {" +
                            "           req = new ActiveXObject('Msxml2.XMLHTTP');" +
                            "       } catch(e) {" +
                            "           try {" +
                            "               req = new ActiveXObject('Microsoft.XMLHTTP');" +
                            "           } catch(e) {" +
                            "               req = false;" +
                            "           }" +
                            "       }" +
                            "   }" +
                            "   if(req) {" +
                            "       req.onreadystatechange = function(){processReqChange(dock,args)};" +
                            "       req.open('GET', 'Config.xml', false);" +
                            "       req.send('');" +
                            "   }" +
                            "}" +
                            "function processReqChange(dock,args) {" +
                                // only if req shows "loaded"
                            "   if (req.readyState == 4) {" +
                                    // only if "OK"
                            "       if (req.status == 200) {" +
                                    // ...processing statements go here...
                            "           var contagemNos = req.responseXML.documentElement;" +
                            "                           var txt = contagemNos.childNodes(i).getElementsByTagName('Titulo')[0].text;" +//alert(txt);
                    "                           var ta = contagemNos.childNodes(i).getElementsByTagName('Id')[0].previousSibling; var tatext = ta.text;" +//alert(tatext);
                    "                           var ni = document.getElementById('spanObjDock');" +
                    "                           var divIdName = 'myDiv';" +
                    "                           var newdiv = document.createElement('div');" +
                    "                           newdiv.setAttribute('id',divIdName);" +
                    "                           var labelTitulo = document.createElement('label');" +
                    "                           labelTitulo.id = 'span1';" +
                    "                           labelTitulo.innerHTML = 'Titulo';" +
                    "                           newdiv.appendChild(labelTitulo);" +
                    "                           var break1 = document.createElement('br');" +
                    "                           newdiv.appendChild(break1);" +
                    "                           var tboxTitulo = document.createElement('input');" +
                    "                           tboxTitulo.setAttribute('type', 'text');" +
                    "                           tboxTitulo.setAttribute('value', txt);" +
                    "                           tboxTitulo.setAttribute('name', 'tboxTitulo');" +
                    "                           tboxTitulo.setAttribute('id', 'tboxTitulo');" +
                    "                           if (tboxTitulo.addEventListener){" +
                    "                               var enviar = 'tboxTitulo';" +
                    "                               tboxTitulo.addEventListener('keyup', function(){updateValueTitulo(enviar);}, false);" +
                    "                           } else if (tboxTitulo.attachEvent){ " +
                    "                               var enviar = 'tboxTitulo';" +
                    "                               tboxTitulo.attachEvent('onkeyup', function(){updateValueTitulo(enviar);});" +
                    "                           }" +
                    "                           newdiv.appendChild(tboxTitulo);" +
                    "                           var break1 = document.createElement('br');" +
                    "                           newdiv.appendChild(break1);" +
                    "                           ni.appendChild(newdiv);" +   
                            "       } else {" +
                            "           alert('There was a problem retrieving the XML data: ' + req.statusText);" +
                            "       }" +
                            "   }" +
                            "}";
                ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "PositionChanged", script, true);
这是我在aspx文件中的代码

....
<asp:UpdatePanel runat="server" id="UpdatePanel3">
        <ContentTemplate>                
            <div id="spanObjDock"></div>
        </ContentTemplate>        
</asp:UpdatePanel>
....
。。。。
....

答案并不准确,但有两条建议:

  • 使用jQuery(或类似的库,但MS支持jQuery,您可以获得Intellisense)。您粘贴的大部分代码将由jQuery解析,您不必担心不同的浏览器,只需编写重要的代码(应用程序逻辑)
  • 使用Firefox+Firebug调试代码。您可以添加断点并一步一步地运行代码,以发现对HTML所做的更改是在什么时候恢复的
  • 链接:

    jQuery:

    萤火虫:

    在Visual Studio 2008中使用jQuery:

    jQuery教程:

    jQuery.get()方法:

    我们需要一些代码来回答这个问题,“消失”是什么意思?当您查看>源时,它们不会显示?(这是意料之中的,它显示源代码,而不是实时DOM的呈现)。内容在页面中出现几秒钟,然后消失?还有别的吗?就是这样。如果我在开始时发出警告,它会显示带有XML值的元素,否则HTML元素消失不到一秒钟,更像是一个闪光灯。我必须为HTML元素做些什么才不会消失?是否有一个网站可以让我更好地阅读和理解jQuery,并在我的案例中应用jQuery?