这个和某些浏览器解释有关!可以把你range.pasteHTML(str1);中的str1进行编码:encodehtml(str1)
function encodehtml(s)
{
s = s.replace(/&/g, "&");
s = s.replace(/</g, "&lt;");
s = s.replace(/>/g, "&gt;");
s = s.replace(/'/g, "&apos;");
s = s.replace(/"/g, "&quot;");
return s;
}
显示是在还原:
function decodehtml(s)
{
s = s.replace(/&lt;/g, "<");
s = s.replace(/&gt;/g, ">");
s = s.replace(/&apos;/g, "'");
s = s.replace(/&quot;/g, "\"");
s = s.replace(/&amp;/g, "&");
return s;
}

解决方案 »

  1.   

    str1="<object classid=clsid:0002E510-0000-0000-C000-000000000046" + " width="+document.form1.width.value+" height="+document.form1.height.value+">"+"<param name=AutoStart value=-1>"+"<param name=ShowStatusBar value=-1>"+"<param name=Filename value="+ document.form1.url.value +">"+"<param name=filename ></object>";//
    还是没对!也许是我提问没对!这是一个HTML在线编辑器,这代码经过 
    range.pasteHTML(str1);后
    在编辑器里显示的是WINDOWS PLAER 的外型,但是看HTML代码,中间的<param>都没有了!
    为什么我把上面的字符串中的 0002E510-0000-0000-C000-000000000046
    换成FLASH的,其它都不动!他就能正常显示出来!
    //
    我上面的函数,虽然html代码对了!但他出来不是PLaER的外型,直接成了html代码
    //
      

  2.   

    那就是,当然,里在显示的时候,还需要用decodehtml在把它给转回来啊!
      

  3.   

    这个问题我遇到过!处理得多了
    如果说不能播放文件的话
    那还有可能服务器用的是mms流媒体服务器.
    里说的显示是html代码!
    那就在显示之前!用decodehtml转一下.就好了