主题: iframe内调用外部方法初始化编辑器报错
作者: 絢夢, 发布日期: 2012-06-21 09:59:13, 浏览数: 4226

iframe内调用外部方法无法初始化编辑器

并且报错

原因:找不到初始化的元素

 

iframe.html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST</title>
<script src="../jquery-1.4.4.js" type="text/javascript"></script>
<script src="kindeditor-min.js?1001" type="text/javascript"></script>
<script src="lang/zh_CN.js?1001" type="text/javascript"></script>
<script type="text/javascript">
var Editor = function(obj, params, jq){
    this.init(obj, params, jq);
};
Editor.tools = [
    'fontname', 'fontsize', '|', 'bold', 'italic', 'underline', 'strikethrough',
    'forecolor', 'hilitecolor', '|', 'selectall', 'removeformat', 'justifyleft',
    'justifycenter', 'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist',
    'outdent', 'indent', '|', 'link', 'unlink', 'table', 'source', 'fullscreen'
];
Editor.prototype = {
    _obj: null,
    _editor: null,
    _params: null,
    _isEditor: true,
    _jq: null,
    init: function(obj, params, jq){
        params.itmes = Editor.tools;
        this._editor = KindEditor.create(obj, params);
    }
};
</script>
</head>
<body>
    <iframe width="800" height="500" src="demo.html"></iframe>
</body>
</html>

 

demo.html

<!DOCTYPE html>
<html>
    <head>
    <title>DEMO</title>
    <script src="../jquery-1.4.4.js" type="text/javascript"></script>
    </head>
    <body>
        <textarea id="content" style="width:100%;height:200px;"></textarea>
        <script type="text/javascript">
        $(function(){
	if (typeof(getTop) != 'function') {
	    function getTop() {
		return top;
	    }
	}

	var TOP = TOP || getTop(),
	    editor = new TOP.Editor('#content', {
		resizeType : 1,
		minHeight: 200,
	        themeType : 'default'
	    }, jQuery);
        });
        </script>
    </body>
</html>

这样就会报错并无法初始化

作者: 絢夢, 发布日期: 2012-06-21 10:25:53

求高手们指教

KindEditor开发者们有没有解决的办法呢,请赐教

感激不尽

回复
作者: Roddy, 发布日期: 2012-06-21 12:13:15
回复絢夢:调用外部的JS会有问题,主要原因是document,window是外部的。请在内部引入JS。
回复
作者: 絢夢, 发布日期: 2012-06-21 12:36:38

回复Roddy:这个我也知道,但是我有很多方法都在外部封装,之间都有相互关系,所以不好动。

给个建议,初始化如果能这样

var editor = new TOP.Editor($('#content'), {
    resizeType : 1,
    minHeight: 200,
    themeType : 'default'

});

就会很好罗

回复
作者: Roddy, 发布日期: 2012-06-21 15:28:09

回复絢夢:可以传入element对象的,不过不知道功能是否正常。



var editor = new TOP.Editor($('#content')[0], {
    resizeType : 1,
    minHeight: 200,
    themeType : 'default'
});
回复
发表新帖 发表回复