内容随便改就行了,我只是随便复制了一段带HTML的代码进行测试,不过函数可能考虑的多了点长了些,我的思路是通过match和split返回两数组,再拼成的,里面一段是防止&nbsp;等这样的符号被替换了,不过我又发现了个问题,就是如果需要替换的关键字有<font color="#ff0000"></font>里面的字符又会有问题了,不过这都是小问题,关键是IE回错乱位置,返回的结果个预期的差太多了,我测试了FF和OPERA都没出现任何问题的,纳闷了,不过挺感谢你的关注的,楼下继续吧...

解决方案 »

  1.   

    如果将div source中的内容换成:<p>1。下面这个是PHP文件代码:</p><p>&lt;?php<br />
    header(&quot;Cache-Control: no-cache, must-revalidate&quot;); <br />
    header('Content-type: text/html;charset=utf-8'); <br />
    if(strip_tags($_GET['action'])=='read') <br />
    {&nbsp;<br />
    &nbsp;&nbsp; //读取文件 <br />
    &nbsp;&nbsp; echo nl2br(file_get_contents(&quot;demo.txt&quot;)); <br />
    }else{ <br />
    &nbsp;&nbsp; //写入文件 <br />
    &nbsp;&nbsp; $content=$_POST['content']; <br />
    &nbsp;&nbsp; file_put_contents('demo.txt',$content); <br />
    &nbsp;&nbsp; echo nl2br(file_get_contents(&quot;demo.txt&quot;)); <br />
    } <br />
    ?&gt;</p>
    <p>2。下面这个是ajax.htm代码:</p>
    <p>&lt;script language=&quot;javascript&quot;&gt; <br />
    //创建AJAX <br />
    function initxmlhttp() <br />
    { <br />
    &nbsp;&nbsp;&nbsp; var xmlhttp <br />
    &nbsp;&nbsp;&nbsp; try { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;); <br />
    &nbsp;&nbsp;&nbsp; } catch (e) { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (E) { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=false; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp;&nbsp; if (!xmlhttp &amp;&amp; typeof XMLHttpRequest!='undefined') { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp = new XMLHttpRequest(); <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (e) { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=false; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp;&nbsp; if (!xmlhttp &amp;&amp; window.createRequest) { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp = window.createRequest(); <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (e) { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=false; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp;&nbsp; return xmlhttp; <br />
    } <br />
    //从文本文件中读取文件并且显示 <br />
    function readText() <br />
    { <br />
    &nbsp;&nbsp;&nbsp; var readButton=document.getElementById('read'); <br />
    &nbsp;&nbsp;&nbsp; var showcontent=document.getElementById('content'); <br />
    &nbsp;&nbsp;&nbsp; readButton.disabled=&quot;disabled&quot;; <br />
    &nbsp;&nbsp;&nbsp; showcontent.innerHTml='正在读取,Loading…..'; <br />
    &nbsp;&nbsp;&nbsp; var xmlhttp=initxmlhttp(); <br />
    &nbsp;&nbsp;&nbsp; var url=&quot;operation.php?action=read&quot;; <br />
    &nbsp;&nbsp;&nbsp; xmlhttp.open(&quot;GET&quot;,url,true); <br />
    &nbsp;&nbsp;&nbsp; xmlhttp.onreadystatechange=function(){</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(xmlhttp.readyState==4 &amp;&amp; xmlhttp.status==200) <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
    <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; showcontent.innerHTML=xmlhttp.responseText; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; readButton.disabled=&quot;&quot;; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById('edit').disabled=&quot;&quot;; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp;&nbsp; xmlhttp.send(null); <br />
    } <br />
    //转换到编辑模式 <br />
    function edit() <br />
    { <br />
    &nbsp;&nbsp; document.getElementById('edit').disabled=&quot;disabled&quot;; <br />
    &nbsp;&nbsp; var str=''; <br />
    &nbsp;&nbsp; str+='&lt;textarea name=&quot;textContent&quot; cols=&quot;50&quot; rows=&quot;8&quot; id=&quot;textContent&quot;&gt;'; <br />
    &nbsp;&nbsp; str+='&lt;/textarea&gt;'; <br />
    &nbsp;&nbsp; document.getElementById('content').innerHTML=str; <br />
    &nbsp;&nbsp; document.getElementById('update').disabled=&quot;&quot;; <br />
    } <br />
    //更新数据到文本文件 <br />
    function update() <br />
    { <br />
    &nbsp;&nbsp; var xmlhttp=initxmlhttp(); <br />
    &nbsp;&nbsp; var url=&quot;operation.php?action=write&quot;; <br />
    &nbsp;&nbsp; var data=&quot;content=&quot;+document.all.textContent.value; <br />
    &nbsp;&nbsp; xmlhttp.open(&quot;POST&quot;,url,true); <br />
    &nbsp;&nbsp; xmlhttp.setRequestHeader(&quot;Content-Type&quot;,&quot;application/x-www-form-urlencoded&quot;); <br />
    &nbsp;&nbsp; xmlhttp.send(data); <br />
    &nbsp;&nbsp; xmlhttp.onreadyStatechange=function(){ <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(xmlhttp.readyState==4 &amp;&amp; xmlhttp.status==200) <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById('content').innerHTML=xmlhttp.responseText; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById('update').disabled=&quot;disabled&quot;; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />
    &nbsp;&nbsp; } <br />
    } <br />
    &lt;/script&gt; <br />
    &lt;body&gt; <br />
    &lt;div class=&quot;main-box&quot;&gt; <br />
    &nbsp; &lt;div class=&quot;head-dark-box&quot;&gt;AJAX+PHP读取更新文本文件&lt;/div&gt; <br />
    &nbsp; &lt;div class=&quot;body-box&quot;&gt; <br />
    &nbsp;&nbsp;&nbsp; &lt;div class=&quot;tip-msg&quot;&gt;一个简单的AJAX演示。主要功能有 :&lt;br /&gt; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、读取文本文件并显示。&lt;br /&gt; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、更新文本文件。 <br />
    &nbsp;&nbsp;&nbsp; &lt;/div&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br />
    &nbsp;&nbsp;&nbsp; &lt;div class=&quot;alt-table&quot; &gt;&lt;br /&gt; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id=&quot;read&quot; name=&quot;read&quot; type=&quot;button&quot; class=&quot;button&quot; value=&quot;读取&quot; onclick=&quot;readText()&quot; /&gt; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id=&quot;edit&quot; disabled=&quot;disabled&quot; name=&quot;edit&quot; type=&quot;button&quot; class=&quot;button&quot; value=&quot;编辑&quot; onclick=&quot;edit()&quot; /&gt; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id=&quot;update&quot; disabled=&quot;disabled&quot; name=&quot;update&quot; type=&quot;button&quot; class=&quot;button&quot; value=&quot;更新&quot; onclick=&quot;update()&quot; /&gt; <br />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div id=&quot;content&quot; class=&quot;textbox-title&quot;&gt;&lt;/div&gt; <br />
    &nbsp;&nbsp;&nbsp; &lt;/div&gt; <br />
    &nbsp; &lt;/div&gt; <br />
    &lt;/div&gt; <br />
    &lt;/body&gt;</p>
    </div>问题就很明显了,住要是看HTML标记和它的内容的错位,别的还好