这是我的jsFiddle:https://jsfiddle.net/wsounka3/
当我在WYSIWYG中更改字体大小然后删除所有书面文字并再次开始书写时,它会保留最后一个字体大小而不是重新开始。
如何让iframe“忘记”最后一个字体大小?
代码:
function iwrap(elem,iwin,idoc){
var element = idoc.createElement(elem);
var sel = iwin.getSelection();
if(sel.rangeCount){
var range = sel.getRangeAt(0).cloneRange();
range.surroundContents(element);
sel.removeAllRanges();
sel.addRange(range);
}
}
$('#smaller').click(function(){
iwrap('small',iwin,idoc);
update_code();
});
$('#larger').click(function(){
iwrap('big',iwin,idoc);
update_code();
});
附带问题:我发现奇怪的是,通过将文本包含在<big>
和<small>
标记中,它决定将其转换为像素。任何人都可以解释为什么会这样做吗?
答案 0 :(得分:2)
因为当您单击“删除”时,您将删除文本内容而不是包装标记。您可以在没有文字内容时清除标记 - 此外还有一个Chrome错误,该错误会保留最后一个元素大小,因此在删除接缝之前将其包裹在[span]标记中以解决该问题
由于你在keyup上调用update_code,只需在那里添加一个清理检查
function update_code(){
var $body = $(idoc).contents().find('body');
if ($.trim($body.text()).length == 0) {
iwrap('span', iwin, idoc); // chrome bug
$body.empty();
}
var icontent = $body.html();
$('div#code').html(icontent);
}
BIG / SMALL to SPAN:尺寸似乎也是一个自动镀铬的东西