对于我的小型 wiki 应用程序,我主要需要使用文本区域来编辑内容以使用软(或虚拟)换行。但是,在某些情况下,最好不包装内容。我想我可以通过简单地使用一个按钮来关闭包装来做到这一点。这是简化的代码:
<form name="wikiedit" action="[[script_name]]" method="post">
<textarea name="content" rows="25" cols="90" wrap="virtual">[[content]]</textarea>
<input type="button" onclick="document.wikiedit.content.wrap='off';" value="No Wrap">
<input type="submit" value="Save">
</form>
它适用于 IE,但不适用于 Firefox 或 Opera。我该怎么做?
请参阅错误 41464:https://bugzilla.mozilla.org/show_bug.cgi?id=41464
目前令人讨厌的解决方法是将文本区域替换为其自身的克隆:
function setWrap(area, wrap) {
if (area.wrap) {
area.wrap= wrap;
} else { // wrap attribute not supported - try Mozilla workaround
area.setAttribute('wrap', wrap);
var newarea= area.cloneNode(true);
newarea.value= area.value;
area.parentNode.replaceChild(newarea, area);
}
}
不相关:尽量避免直接从文档对象访问元素,它在某些浏览器上不可靠并导致名称冲突问题。 “document.forms.wikiedit”更好,在表单上移动到“id”而不是“name”,然后使用“document.getElementById('wikiedit')”更好。
出于类似的原因,form.elements.content 也比 form.content 更可靠...或者,实际上,您可以给文本区域一个 ID,然后使用 getElementById 直接进入文本区域,而不必费心查看表单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)