支持插入表达式来实现代码的编辑器(简单的想法很重要)
复制代码代码如下所示:
0.webp
1.webp
2.webp
下一步,将上述李成IMG
复制代码代码如下所示:
无功facedir =图像 / / / ;面对配置目录
无功iframedocument = null;
无功iframewindow = null;
无功议= false;
$.each ($(#faceList>li), function () {/ / show expression
var node = document.createelement(IMG);
node.classname = $(this)。Attr(类);
node.src = facedir + $(this)Html();
this.innerhtml = ;
this.appendchild(节点);
});
把一个iframe进行编辑
复制代码代码如下所示:
得到ifame第一
复制代码代码如下所示:
iframewindow = document.getelementbyid(编辑)。ContentWindow;iframedocument = document.getelementbyid(编辑)。ContentWindow.document;iframedocument。设计模式= ; / /打开iframe编辑模式
。设计模式= ;这种方法是很常见的。在它的开始,你要使用的文本,但文本不能显示图片。在实际过程中文本和iframe之间的差异,因此它不会自己包裹在iframe,所以它增加了身体的自动换行、设置自动换行属性。
复制代码代码如下所示:
iframedocument.write();
以下是在iframe插入一张图片表达的过程(代码中的注释)
复制代码代码如下所示:
$(你需要登录后才# >里)。Click(function(){)
var $ = $(这个);
thisimg = $(var $本)。找到(IMG:情商(0)); / /当前点击的表达(img标签)
document.getelementbyid(编辑)(。contentwindow。重点); / /编辑区域集中
var = null;
如果(文档选择)兼容
{
iframe / /表达增加
R = iframedocument.selection.createrange();
IframeDocument.selection.empty();
r.pastehtml($ thisimg { 0 }。parentnode.innerhtml.tostring());
}
如果(窗口。getSelection)
{
R = iframewindow.getselection()GetRangeAt(0);
iframewindow.getselection()RemoveAllRanges();
var node = document.createelement(IMG);
node.classname = $ thisimg.attr(类);
node.src = $ thisimg.attr(src);
r.surroundcontents(节点);
}
});
在这里,插入表达的过程就完成了。最后一件事情:IMG标记的翻译
复制代码代码如下所示:
geteeditdata()函数
{
var编辑= iframedocument.getelementsbytagname(体){ 0 }。innerHTML;
在内存中复制一个节点的副本,以确保完整的文档流格式
新字符串(编辑);
值为$();
无功imgnode = $(你需要登录后才# IMG );
美元。每个(imgnode,函数(){(){
var马克=/+ $(this)。Attr(类)(ToString);
VaR值= content.find美元(,+ $(this)。Attr(类)(ToString));
如果(fs)!= nullfs { 0 }!=未定义)
{
Fs.replaceWith(Mark);
}
});
}
事实上,还有很多问题没有解决,把代码放出来,希望能帮助一些朋友解决这个问题。