HTML在线编辑器会自动给该图片加上http://**和域名,再保存到数据库,但如果域名变更了,图片链接就会失效,而数据库有大量数据,应该如何令图片在存入表的时候,不追加域名呢?如:<img src="/Images/my.gif" border=0> 

解决方案 »

  1.   

    "/Images/my.GIF".replace("/" ,location.hostName);
      

  2.   

    <于娜> 我编程很烂~ 但至少我好看!
      

  3.   

    这是因为 通过innerHTML取到的没有好办法 只能批量替换掉了 
      

  4.   

    可是有的却需要域名,有的不需要,怎么替换??我只想保持用户输入的原样。怎麽有简单的办法解决。我看 freebox 好像很不是替换的吧。 
      

  5.   

    还有就是 不用localhost域名访问 而用正式域名
      

  6.   

    自己写的,帮我看看,有什么技巧解决。(如果用替换就不用给我回答了!)
    <iframe id='my' width='600' height='400' frameborder='1' scrolling='yes'></iframe><br>
    <input type="button" value="design" onclick="ChangeMode('design')"> <input type="button" value="code" onclick="ChangeMode('code')">
    <script>
    var edit = document.frames["my"];
    edit.document.designMode="on";
    edit.document.open();
    edit.document.write("");
    edit.document.close();
    </script>
    <script>
    function SetMode(m)
    {
    if(m=="design")
    {
                 edit.document.body.innerHTML = edit.document.body.innerText;
    } if(m=="code")
    {
                 edit.document.body.innerText = edit.document.body.innerHTML;
    }
    }
    </script>
      

  7.   

    上面贴错了,看这个
    自己写的,帮我看看,有什么技巧解决。(如果用替换就不用给我回答了!) 
    <iframe   id='my'   width='600'   height='400'   frameborder='1'   scrolling='yes'> </iframe> <br> 
    <input   type="button"   value="design"   onclick="ChangeMode('design')">   <input   type="button"   value="code"   onclick="ChangeMode('code')"> 
    <script> 
    var   edit   =   document.frames["my"]; 
    edit.document.designMode="on"; 
    edit.document.open(); 
    edit.document.write(""); 
    edit.document.close(); 
    </script> 
    <script> 
    function   ChangeMode(m) 

    if(m=="design") 

                              edit.document.body.innerHTML   =   edit.document.body.innerText; 
    } if(m=="code") 

                              edit.document.body.innerText   =   edit.document.body.innerHTML; 


    </script> 
      

  8.   

    我大概也看了,这个问题是在与你设计状态与code状态下的一些不同
    在设计状态下,由于需要浏览到图片,自动把带有连接地址的都图片或者附件等等都解析成了带有URL的,
    即html代码
    因为预览需要有完整的地址才能看到,所以你在用转换到code状态时,利用 edit.document.body.innerText=edit.document.body.innerHTML;这样赋值,得到当然带有完整地址的,你得利用正则把edit.document.body.innerHTML代码里的完整地址前面的URL去掉,就是服务器地址去掉,只留路径再赋值
      

  9.   

    呵呵,我就不把答案写出来了,告诉你思路和做法,你可以先把edit.document.body.innerHTML赋给一个变量,
    再用正则对这个变量过滤替换就可以了!明白否?
      

  10.   

    楼上的朋友,你看看FCKeditor 、 eWebEditor怎麽处理的 ,我怎么没发现它们有正则替换啊????
      

  11.   

    eWebEditor
    一样也可以完整地址存在!!!
    FCKeditor
    我只是没用过,所以不清楚
      

  12.   

    // 设置编辑器的内容
    function setHTML(html) {
    ContentEdit.value = html;
    switch (sCurrMode){
    case "CODE":
    eWebEditor.document.designMode="On";
    eWebEditor.document.open();
    eWebEditor.document.write(config.StyleEditorHeader);
    eWebEditor.document.body.innerText=html;
    eWebEditor.document.body.contentEditable="true";
    eWebEditor.document.close();
    bEditMode=false;
    break;
    case "EDIT":
    eWebEditor.document.designMode="On";
    eWebEditor.document.open();
    eWebEditor.document.write(config.StyleEditorHeader+html);
    eWebEditor.document.body.contentEditable="true";
    eWebEditor.document.execCommand("2D-Position",true,true);
    eWebEditor.document.execCommand("MultipleSelection", true, true);
    eWebEditor.document.execCommand("LiveResize", true, true);
    eWebEditor.document.close();
    doZoom(nCurrZoomSize);
    bEditMode=true;
    eWebEditor.document.onselectionchange = function () { doToolbar();}
    break;
    你好好看eWebEditor怎麽处理
    不是我好好看
    你认为他没过滤了吗?
    仔细看看代码!
    看看设计状态,就是EDIT里面的
      

  13.   

    switch(sCurrMode){
    case "CODE":
    if (NewMode=="TEXT"){
    eWebEditor_Temp_HTML.innerHTML = eWebEditor.document.body.innerText;
    sBody = eWebEditor_Temp_HTML.innerText;
    }else{
    sBody = eWebEditor.document.body.innerText;
    }
    break;
    case "TEXT":
    sBody = eWebEditor.document.body.innerText;
    sBody = HTMLEncode(sBody);
    break;
    case "EDIT":
    case "VIEW":
    if (NewMode=="TEXT"){
    sBody = eWebEditor.document.body.innerText;
    }else{
    sBody = eWebEditor.document.body.innerHTML;
    }
    break;
    default:
    sBody = ContentEdit.value;
    break;
    } // 换图片
    try{
    document.all["eWebEditor_CODE"].className = "StatusBarBtnOff";
    document.all["eWebEditor_EDIT"].className = "StatusBarBtnOff";
    document.all["eWebEditor_TEXT"].className = "StatusBarBtnOff";
    document.all["eWebEditor_VIEW"].className = "StatusBarBtnOff";
    document.all["eWebEditor_"+NewMode].className = "StatusBarBtnOn";
    }
    catch(e){
    }

    sCurrMode = NewMode;
    ModeEdit.value = NewMode;
    setHTML(sBody);
    disableChildren(eWebEditor_Toolbar); }
    }好好来看这些
      

  14.   

    // 改变模式:代码、编辑、文本、预览
    function setMode(NewMode){
    if (NewMode!=sCurrMode){

    if (!BrowserInfo.IsIE55OrMore){
    if ((NewMode=="CODE") || (NewMode=="EDIT") || (NewMode=="VIEW")){
    alert("HTML编辑模式需要IE5.5版本以上的支持!");
    return false;
    }
    } if (NewMode=="TEXT"){
    if (sCurrMode==ModeEdit.value){
    if (!confirm("警告!切换到纯文本模式会丢失您所有的HTML格式,您确认切换吗?")){
    return false;
    }
    }
    } var sBody = "";
    switch(sCurrMode){
    case "CODE":
    if (NewMode=="TEXT"){
    eWebEditor_Temp_HTML.innerHTML = eWebEditor.document.body.innerText;
    sBody = eWebEditor_Temp_HTML.innerText;
    }else{
    sBody = eWebEditor.document.body.innerText;
    }
    break;
    case "TEXT":
    sBody = eWebEditor.document.body.innerText;
    sBody = HTMLEncode(sBody);
    break;
    case "EDIT":
    case "VIEW":
    if (NewMode=="TEXT"){
    sBody = eWebEditor.document.body.innerText;
    }else{
    sBody = eWebEditor.document.body.innerHTML;
    }
    break;
    default:
    sBody = ContentEdit.value;
    break;
    } // 换图片
    try{
    document.all["eWebEditor_CODE"].className = "StatusBarBtnOff";
    document.all["eWebEditor_EDIT"].className = "StatusBarBtnOff";
    document.all["eWebEditor_TEXT"].className = "StatusBarBtnOff";
    document.all["eWebEditor_VIEW"].className = "StatusBarBtnOff";
    document.all["eWebEditor_"+NewMode].className = "StatusBarBtnOn";
    }
    catch(e){
    }

    sCurrMode = NewMode;
    ModeEdit.value = NewMode;
    setHTML(sBody);
    disableChildren(eWebEditor_Toolbar); }
    }注意看这个他改变状态的函数都调用了哪些
      

  15.   

    我想FCKeditor 肯定也是有自己的过滤替换函数
      

  16.   

    代码我早就看过了。我只看到了 eWebEditor.document.body.innerHTML  好像没什么特殊处理啊。,你能告诉我吗?
      

  17.   

    汗!!!
    //   换图片 
    try{ 
    document.all["eWebEditor_CODE"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_EDIT"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_TEXT"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_VIEW"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_"+NewMode].className   =   "StatusBarBtnOn"; 

    catch(e){ 
    sCurrMode   =   NewMode; 
    ModeEdit.value   =   NewMode; 
    setHTML(sBody); 

    disableChildren(eWebEditor_Toolbar); } 这代码
    if   (NewMode=="TEXT"){ 
    eWebEditor_Temp_HTML.innerHTML   =   eWebEditor.document.body.innerText; 
    sBody   =   eWebEditor_Temp_HTML.innerText; 

    }else{ 
    sBody   =   eWebEditor.document.body.innerText; 

    还有这代码!自己好好看!!
      

  18.   

    //   设置编辑器的内容 
    function   setHTML(html)   { 
    ContentEdit.value   =   html; 
    switch   (sCurrMode){ 
    case   "CODE": 
    eWebEditor.document.designMode="On"; 
    eWebEditor.document.open(); 
    eWebEditor.document.write(config.StyleEditorHeader); 
    eWebEditor.document.body.innerText=html; 
    eWebEditor.document.body.contentEditable="true"; 

    eWebEditor.document.close(); 
    bEditMode=false; 
    break; 
    case   "EDIT": 
    eWebEditor.document.designMode="On"; 
    eWebEditor.document.open(); 
    eWebEditor.document.write(config.StyleEditorHeader+html); 
    eWebEditor.document.body.contentEditable="true"; 
    eWebEditor.document.execCommand("2D-Position",true,true); 
    eWebEditor.document.execCommand("MultipleSelection",   true,   true); 
    eWebEditor.document.execCommand("LiveResize",   true,   true); 

    eWebEditor.document.close(); 
    doZoom(nCurrZoomSize); 
    bEditMode=true; 
    eWebEditor.document.onselectionchange   =   function   ()   {   doToolbar();} 
    break;自己好好看吧
      

  19.   

    if       (NewMode=="TEXT"){   
    eWebEditor_Temp_HTML.innerHTML       =       eWebEditor.document.body.innerText;   
    sBody       =       eWebEditor_Temp_HTML.innerText;   
    }else{   
    sBody       =       eWebEditor.document.body.innerText;   
    }   就单单这以句
    为什么不直接就用sBody       =       eWebEditor.document.body.innerText;   
    而非要用if esle 想想
      

  20.   

    还有为什么要要换图片
    //   换图片 
    try{ 
    document.all["eWebEditor_CODE"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_EDIT"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_TEXT"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_VIEW"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_"+NewMode].className   =   "StatusBarBtnOn"; 

    catch(e){ 
    } sCurrMode   =   NewMode; 
    ModeEdit.value   =   NewMode; 
    setHTML(sBody); 
    disableChildren(eWebEditor_Toolbar); } 
    } 干吗不直接用setHTML(sBody); 
    这些问题难道你就不想去想下?
      

  21.   

    case   "CODE": 
    if   (NewMode=="TEXT"){ 
    eWebEditor_Temp_HTML.innerHTML   =   eWebEditor.document.body.innerText; 
    sBody   =   eWebEditor_Temp_HTML.innerText; 
    }else{ 
    sBody   =   eWebEditor.document.body.innerText; 

    break;
    重要的你还是要看这里!!!
    为什么在源码状态下不像你那样直接用,而是非要做下什么if else判断呢?
    这些你就看不出名堂??
    别人说你浮躁,真的确实没错!根本不安下心来看
      

  22.   

    楼上的,我现在是要把Edit模式先转换成 CODE 模式出的错,你重点让我看的不对。既然看似简单,不如你把我的代码改一下,我保证不成功,我改了不行,你试试。
      

  23.   

    //   换图片 
    try{ 
    document.all["eWebEditor_CODE"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_EDIT"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_TEXT"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_VIEW"].className   =   "StatusBarBtnOff"; 
    document.all["eWebEditor_"+NewMode].className   =   "StatusBarBtnOn"; 

    catch(e){ 
    } 还有这个地方哦!!
      

  24.   

    汗!你的要改实在是太多了!我建议你看下eWebEditor的dialog\dialog.js
    这个文件,里面有相对路径转为根形式路径,相对路径按路径模式转为相应的格式,显示路径到编辑器路的相对形式
    好好去看看这些!
    不要说他没做转换!只是你没仔细找吧了,从我给你的那些重点中对应的去搜索,慢慢就找到了这个位置
      

  25.   

    你要不信,你自己做一个实验
    加一个安扭,安如下操作后再按安扭提交把值打印出来看就明白了:
    代码状态下写如下内容 
    <IMG   src="/Images/my.GIF"   border=0> 
    然后在切换到设计状态
    这时候你打印在设计状态下的值,你一切就都明白了!为什么要做那么多的函数来过滤!