我试图从 a 中获取价值textarea
并将其放入一个pre tag
,它在 chrome 和 mozilla 上工作正常,但在 IE8 上,整个内容保留在一行中pre tag
jsbin链接:http://jsbin.com/uwunug/4/edit http://jsbin.com/uwunug/4/edit
这就是整个事情:
<html><head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
</head>
<body>
<script type='text/javascript'>
$(function(){
$('#b1').click(function(){
x = $('textarea').val();
$('#tt').html(htmlEscape(x));
});
});
function htmlEscape(str) {
return String(str)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
}
</script>
<textarea cols='50' rows='20'>
</textarea>
<button id='b1'>make code</button>
<pre class="prettyprint" id='tt'>
</pre>
</body>
</html>
我注意到(通过替换\n
'进入')\n
字符进入 pre 但它们不会在其中产生新行
atm 我的解决方案是在末尾添加这一行:
.replace(/\n/g, '<br\>')
在我的 htmlEscape 中,所以它是这样的:
function htmlEscape(str) {
return String(str)
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/\n/g, '<br\>');
}
如果您知道更好的答案,请发表您的答案
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)