主题: insertHtml奇怪的问题
作者: FlamesTsui, 发布日期: 2011-04-24 22:31:00, 浏览数: 3483

KE.plugin['insertMP3'] = {
click : function(id) {
KE.util.selection(id);
var dialog = new KE.dialog({
id : id,
cmd : 'insertMP3',
file : 'mp3.html',
width : 400,
height : 90,
loadingMode : true,
title : KE.lang['insertMP3'],
yesButton: KE.lang['yes'],
noButton : KE.lang['close']
});
dialog.show();
},
check : function(id, url) {
var dialogDoc = KE.util.getIframeDoc(this.dialog.iframe);
if (!url.match(/^.{3,}\.(swf|flv|mp3|wav|wma|wmv|mid|avi|mpg|mpeg|asf|rm|rmvb)(\?|$)/i)) {
alert(KE.lang['invalidMedia']);
KE.$('url', dialogDoc).focus();
return false;
}
return true;
},
exec : function(id) {
var dialogDoc = KE.util.getIframeDoc(KE.g[id].dialog);
var dialogUrl = KE.$('url', dialogDoc).value;
//if (!this.check(id, dialogUrl)) return false;
var html='<mp3>' + dialogUrl + '</mp3>';
KE.util.insertHtml(id, html);
KE.layout.hide(id);
KE.util.focus(id);
}
};

 

就这样

url的值=http://www.xxx.com/1.mp3

但是文本框得到的值

http://www.xxx.com/1.mp3</mp3>

而不是

<mp3>http://www.xxx.com/1.mp3</mp3>

版本为3.5.3

作者: Roddy, 发布日期: 2011-04-24 23:03:19

IE的range.pasteHTML有这个BUG,试了一下HTML前面添加特殊字符能解决这个问题。

1. 在代码里搜索g.range.pasteHTML(html);改成这样。

g.range.pasteHTML('\u200B' + html);

2. 在getHtml函数最后添加删除特殊字符的处理。

html = html.replace(/\u200B/g, '');

回复
作者: FlamesTsui, 发布日期: 2011-04-24 23:40:59

额。谢谢,

有效!

回复
作者: Roddy, 发布日期: 2011-04-24 23:52:36
今天不知道是什么原因,googlecode的SVN一直不能访问
回复
发表新帖 发表回复