什么标签能翻译html文本,除了iframe

lotuslwt 2014-10-11 11:27:55
我想在一个页面div中插入一段服务端返回的html文本,浏覧器显示的却是原html代码。我知道可以用iframe作为一个子页面,但是我觉得它在版面上不太好控制,请问各位大牛,还有什么解决办法。我想到一个极笨的办法就是用python把这段html文本(来至数据库)插入到这个html文件,然后再返回,这样做的后果是服务器频繁读写,可能受不了。>_<

这个html文件类似这样(python+web.py+markdown):

$def with (html)
<!DOCTYPE html>
<html>
<head>
<title>LWT - blog </title>
</head>
<body>
<div>
$html
</div>
</body>
</html>
...全文
343 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lotuslwt 2014-10-17
  • 打赏
  • 举报
回复
终于解决了,我是这样做的,用单引号包裹html字符串变量,类似这样 document.getElementById("blog-content").innerHTML='$html'; $html里面的单引号,换行等事先转义好再返回客户端,这样就不会出错。 感谢诸位热心解答。
lotuslwt 2014-10-17
  • 打赏
  • 举报
回复
说明一下,html代码是markdown生成的,没办法干预使其转义,在线等。。
lotuslwt 2014-10-16
  • 打赏
  • 举报
回复
比如这句 <p>she said, "I hate you".</p><img src="./p001.jpg"> 经转义后 <p>she said, "I hate you".</p><img src="./p001.jpg"> 后面img找不到图片,src="" 属性后的引号转义是多余的,这可咋办,这个问题困扰多时了。
jackykwan4343 2014-10-16
  • 打赏
  • 举报
回复
字符转义代码
slwsss 2014-10-16
  • 打赏
  • 举报
回复
引用 5 楼 lotuslwt 的回复:
感谢版主大大指点,我现在的做法是手工转码,但是遇到正文和属性都带有双引号时,这样也行不通,比如下面这段: ... <p>she said, "I hate you".</p><img src="./p001.jpg"> ... replace 双引号成"导至后面的img无法正确解析,所以这也不是好办法。 好了,我把我的问题再归纳一下: 怎样把含有双引号等特殊字符的字符串赋给一个变量? 由于服务端返回的html文本字符串中有一些特殊字符(比如双引号,分号,换行等),直接赋值给一个变量会引发unterminated string literal等语法错误。 请问有没有什么办法可以包裹wrap这些字符串再进行赋值,而不是replace这些特殊字符成可识别的编码?
字符转义
lotuslwt 2014-10-16
  • 打赏
  • 举报
回复
感谢版主大大指点,我现在的做法是手工转码,但是遇到正文和属性都带有双引号时,这样也行不通,比如下面这段: ... <p>she said, "I hate you".</p><img src="./p001.jpg"> ... replace 双引号成"导至后面的img无法正确解析,所以这也不是好办法。 好了,我把我的问题再归纳一下: 怎样把含有双引号等特殊字符的字符串赋给一个变量? 由于服务端返回的html文本字符串中有一些特殊字符(比如双引号,分号,换行等),直接赋值给一个变量会引发unterminated string literal等语法错误。 请问有没有什么办法可以包裹wrap这些字符串再进行赋值,而不是replace这些特殊字符成可识别的编码?
lotuslwt 2014-10-12
  • 打赏
  • 举报
回复

function loadContent(){
    if(document.getElementById("blog-content")!=null){
      //document.getElementById("blog-content").innerHTML="$html";          //这行是正式代码

      //document.getElementById("blog-content").innerHTML="<h2>bbb</h2>";   //来至$html ,输出<h2>bbb</h2>
     // document.getElementById("blog-content").innerHTML="<p>haha</p>";                       //自己给定的html,输出正常 haha
      //document.getElementById("blog-content").outerHTML="<p>hello,world\"'中国</p><br><p>haha</p>"; //手动给定,输出正常,但双引号要这转义\"才行
    }
上述代码是browser查看源码中看到的,三行语句,我分别试了一下。如果$html中有双引号 或换行,会提示unterminated string literal错误, 我在想是不是要把源html当中的特殊字符repalce成能正确解析的。不过这好麻烦。
Go 旅城通票 2014-10-12
  • 打赏
  • 举报
回复
换行可以用pre标签,双引号不能正确显示是不是你编码过&字符了,变成了&quot;,而不是双引号的实体" var a = document.createElement('pre'); a.innerHTML = $html; document.getElementsByTagName('div')[0].appendChild(a); 用innerHTML替换outerHTML,outerHTML ie only
lotuslwt 2014-10-12
  • 打赏
  • 举报
回复
非常感谢你的指点,你说的outerHTML方法确实就是我要想要的,但是,我试了一下,问题又来了: outerHTML不能正确解析含有逗号,双引号,换行等字符的html,有时也会直接输出原html代码。 Teach me again, please.
guanpuwcg3 2014-10-11
  • 打赏
  • 举报
回复
没听懂什么意思,所有标签都可以呀,只要让页面渲染一下就行。比如你这个例子:

var a = document.createElement('div');
a.outerHTML = $html;
document.getElementsByTagName('div')[0].appendChild(a);

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧