我在我的网页中使用openwysiwyg编辑器。我想清除它的内容。我用过
$('#report').val('');
但这不清楚。
编辑器创建一个iframe并更新其中的内容,同步进行同步。
我将如何清除它?
答案 0 :(得分:5)
您可能需要提供更多信息 - html本身非常有用,但我会假设report
是您需要清除的textarea的ID。
如果它是普通的textarea,你的代码应该真的有效。
如果(正如保罗在评论中提到的那样)它正被openwysiwyg编辑器修改,它可能会变成一个带有它自己的HTML页面的iFrame。操作iFrame要困难得多。
看起来就是这样。
看看这个示例,看看它是否有助于您引用iFrame本身:http://www.bennadel.com/index.cfm?dax=blog:1592.view
这是openwysiwyg附带的example.html的黑客摘录:
<script type="text/javascript">
// Use it to attach the editor to all textareas with full featured setup
//WYSIWYG.attach('all', full);
// Use it to attach the editor directly to a defined textarea
WYSIWYG.attach('textarea1'); // default setup
WYSIWYG.attach('textarea2', full); // full featured setup
WYSIWYG.attach('textarea3', small); // small setup
// Use it to display an iframes instead of a textareas
//WYSIWYG.display('all', full);
function getIFrameDocument( id )
{
var iframe = document.getElementById(id);
if (iframe.contentDocument) {
// For NS6
return iframe.contentDocument;
} else if (iframe.contentWindow) {
// For IE5.5 and IE6
return iframe.contentWindow.document;
} else if (iframe.document) {
// For IE5
return iframe.document;
} else {
return null;
}
}
function clearcontents()
{
getIFrameDocument('wysiwygtextarea1').body.innerHTML = '';
}
</script>
然后在页面的某个地方,我有一个清晰的按钮(实际上是div):
<div style="width:120px;height:20px;background:#ff0000;text-align:center;display:block;" onclick="clearcontents();">Clear!</div>
请注意,textarea的ID前缀为wysiwyg
。这就是iFrame的名称。
我已经在Firefox中对此进行了测试,但此刻没有其他内容。获取我在网上找到的iFrame的代码,所以希望它适用于其他浏览器:)
答案 1 :(得分:1)
这很有效,但是很难看:
var frame = WYSIWYG.getEditor('--ENTER EDITOR NAME HERE--');
var doc = frame.contentWindow.document;
var $body = $('html',doc);
$body.html('');
当您致电--ENTER EDITOR NAME HERE--
时,将attach
替换为传递给编辑器的内容。
答案 2 :(得分:0)
我相信这是有效的
$('#report').text('');