![](/img/trans.png)
[英]HTML 5 toggling the contenteditable attribute with javascript
[英]HTML / JAVASCRIPT : Disable HTML CONTENT in contentEditable=true
我想要的是?
我想要一个像textarea
一样工作的div,我不想在div中编辑内容,粘贴图像等仅是纯文本的功能。
例
www.facebook.com-最好的例子是facebook的新闻提要。
为什么我需要这种方式?
如果您查看facebook的新闻提要,您会很好地看到可以撰写文章的区域,随着您撰写文章或点击大量条目而扩大的区域。
这就是为什么我要对contentEditable使用div的相同原因,因为在textarea中,我不能这样做。 #
请不要仅JQUERY JAVASCRIPT
使用不带框架的纯JavaScript来调整Textarea的大小:
<html>
<head>
<script>
function taOnInput()
{
var dis = this;
setTimeout(
function(){
var span = document.createElement("div");
span.innerHTML = escape(dis.value).replace(/[%]0A/g, "<br/>")+"<br/>."; //Extra BR for padding... TextArea uses %0A, not \n
span.style.width = dis.offsetWidth+"px";
span.style.padding = "0px";
span.style.fontFamily = "Lucida Console";
document.body.appendChild(span); //Offset height doesnt work when not in DOM tree i guess =/? or is it a hack
dis.style.height = span.offsetHeight+"px";
document.body.removeChild(span);
}, 1
); //setTimeout=hack, since oKP is called BEFORE character append.
}
window.onload = function()
{
var resizableTA = document.getElementById("resizableTA");
resizableTA.onkeypress = taOnInput;
}
</script>
<title>ItzWarty - Untitled Document</title>
</head>
<body>
<textarea id="resizableTA">Trololololol</textarea>
</body>
</html>
非常骇人听闻,不到10分钟即可放在一起。 希望它至少能给您一个想法。
仅在Google Chrome 5.0.308.0上进行过测试
代码说明,因为我无法评论
1)在window.onload之前,已创建ID为“ resizableTA”的文本区域,并将其附加到DOM树的document.body中。
2)window.onload附加了一个事件处理程序taOnInput [input上的textarea]。
3)输入的textarea创建一个虚拟跨度,强制其宽度为textarea的宽度,并将字体样式强制为“ Lucida Console”,其中AFAIK是textareas的默认字体,将textarea的值复制到该跨度的innerHTML中,同时进行替换%0A [textareas使用的换行符]与
[越线]...
4)span的offsetHeight是span的高度,现在可以用来强制textarea的高度。
任何人都可以确认Lucida Console是textarea的默认字体吗? 是Consola吗? 快递新? 我以为任何固定宽度的字体都可以。 我不使用Mac,所以我不知道它与Windows共享什么字体,尽管我认为Courier New是更好的选择...
文本元素呢?
您可以将其样式设置为自己喜欢的样式。
如果您只想扩展,可以尝试一下 。
您不必使用DIV。 您仍然可以拥有文本区域,并在必要时进行扩展。
这是一个能做到这一点的jQuery插件: http : //plugins.jquery.com/project/TextAreaResizer
这是一个演示: http : //www.itsavesyou.com/TextArea_Resizer_example.htm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.