Javascript Contenteditable divs在重新加载后隐藏内容
出于文本编辑目的,我在网站中使用Javascript Contenteditable divs在重新加载后隐藏内容,javascript,html,css,Javascript,Html,Css,出于文本编辑目的,我在网站中使用contenteditable divs。当我编辑一些文本时,div height会动态增长,下面的webiste上的所有其他元素都会向下移动。这就是我想要的。最后,我通过Ajax将内容存储在服务器上。到目前为止一切正常 问题是当我从服务器重新加载内容时,contenteditable divs的高度不会自动增长以显示其所有内容。相反,它的高度保持在初始大小 顺便说一句,这适用于所有浏览器 有没有人有一些克服这个问题的提示 编辑 这是html和javascript
contenteditable divs
。当我编辑一些文本时,div height
会动态增长,下面的webiste上的所有其他元素都会向下移动。这就是我想要的。最后,我通过Ajax将内容存储在服务器上。到目前为止一切正常
问题是当我从服务器重新加载内容时,contenteditable divs
的高度不会自动增长以显示其所有内容。相反,它的高度保持在初始大小
顺便说一句,这适用于所有浏览器
有没有人有一些克服这个问题的提示
编辑
这是html和javascript可竞争的
相关代码
<div class="editable" contentEditable=true onkeyup="autoGrowSave(this)" onblur="update(this)" ></div>
function autoGrowSave (oField) {
if (oField.scrollHeight > oField.clientHeight) {
oField.style.height = oField.scrollHeight + "px";
}
}
函数autoGrowSave(oField){
如果(oField.scrollHeight>oField.clientHeight){
oField.style.height=oField.scrollHeight+“px”;
}
}
我使用上面的javascript函数来自动增加contenteditable
。其实我也不知道我是否需要它。下面来自Abhitalks的JSFIDLE示例不需要。隐马尔可夫模型。。。我必须尝试没有
为了在服务器上存储内容,我使用了
onblur
属性,该属性非常有效。我自己回答了这个问题。多亏了Abhitaks JSFIDLE,我发现了限制自动调整高度的问题。为此,我当然感谢您的回答;-)
在CSS声明中,我给类editable
一个20px的初始高度。因此,contenteditable
无法自动调整其高度。反过来,我需要javascript函数autoGrow()
来补偿这个问题。虽然这种“疯狂”的方法在编辑内容时有效,但在重新加载内容时却不起作用
因此,解决方案是消除CSS声明中的
高度
,并去掉javascript函数autoGrow()
。现在它工作完美 您的代码在哪里?如何将内容加载回div?创建一个小例子,再现您的问题。就我看来,应该没有什么问题。请参见这里的示例-感谢sjfiddle示例。那很好用。如上所述,我通过Ajax在服务器上存储和检索内容,这很好。只是自动调整contenteditable
大小以显示所有内容的效果并不正常。“代码在哪里”是什么意思?通过ajax检索内容与从其他地方检索内容没有什么不同。在我的示例中,我从localstorage检索它。尝试输入一些带有换行符的文本,然后保存并加载。将调整高度以显示整个文本。这就是为什么您需要在问题中包含相关代码的原因,没有这些代码,任何人几乎不可能看到哪里出了问题,哪里出了问题。