angularjs中使用ueditor遇到的一个问题

ueditor是经过总公司二次开发过的。

增加了一个设置纸张大小的工具

/*** 设置纸张大小* 二次开发*/UE.plugins['papersize'] = function () {var me = this;me.setOpt({ 'papersize': ['默认', 'A4', 'B5'] });me.commands['papersize'] = {execCommand: function (cmdName, value) {switch (value) {case "A4"://me.body.style.margin = "40px 93px 40px 93px";//me.body.setAttribute("ue_paper", "trs_paper_A4");$(me.body).removeClass("trs_paper_B5").removeClass("trs_paper_default");$(me.body).addClass("trs_paper_A4");break;case "B5"://me.body.style.margin = "40px 113px 40px 113px";//me.body.setAttribute("ue_paper", "trs_paper_B5");$(me.body).removeClass("trs_paper_A4").removeClass("trs_paper_default");$(me.body).addClass("trs_paper_B5");break;default://me.body.style.margin = "40px 23px 40px 23px";//me.body.setAttribute("ue_paper", "trs_paper_default");$(me.body).removeClass("trs_paper_A4").removeClass("trs_paper_B5");$(me.body).addClass("trs_paper_default");}return true;},queryCommandValue: function (cmdName) {//查询当前纸张大小var nowSize;UE.utils.each(me.body.classList.toString().split(" "), function (cls) {if (cls.indexOf("trs_paper_") > -1) {nowSize = cls.split("_")[2];}});return nowSize == "default" ? "默认" : nowSize;}};};

并且在渲染的时候将body的宽度写死了

/*** 渲染编辑器的DOM到指定容器* @method render* @param { Element } containerDom 直接指定容器对象* @remind 执行该方法,会触发ready事件* @warning 必须且只能调用一次*/render: function (container) {var me = this,options = me.options,getStyleValue = function (attr) {return parseInt(domUtils.getComputedStyle(container, attr));};if (utils.isString(container)) {container = document.getElementById(container);}if (container) {if (options.initialFrameWidth) {options.minFrameWidth = options.initialFrameWidth} else {options.minFrameWidth = options.initialFrameWidth = container.offsetWidth;}if (options.initialFrameHeight) {options.minFrameHeight = options.initialFrameHeight} else {options.initialFrameHeight = options.minFrameHeight = container.offsetHeight;}container.style.width = /%$/.test(options.initialFrameWidth) ? '100%' : options.initialFrameWidth -getStyleValue("padding-left") - getStyleValue("padding-right") + 'px';container.style.height = /%$/.test(options.initialFrameHeight) ? '100%' : options.initialFrameHeight -getStyleValue("padding-top") - getStyleValue("padding-bottom") + 'px';container.style.zIndex = options.zIndex;var html = (ie && browser.version < 9 ? '' : '') +'' +/*'' +*///默认引入iframe.css样式(options.iframeDefaultCssUrl ? ' + utils.unhtml(options.iframeDefaultCssUrl) + '\'/>' : '') +(options.iframeCssUrl ? ' + utils.unhtml(options.iframeCssUrl) + '\'/>' : '') +(options.initialStyle ? '' : '') +'' +//'' +'' +'';container.appendChild(domUtils.createElement(document, 'iframe', {id: 'ueditor_' + me.uid,width: "100%",height: "100%",frameborder: "0",//先注释掉了,加的原因忘记了,但开启会直接导致全屏模式下内容多时不会出现滚动条//                    scrolling :'no',src: 'javascript:void(function(){document.open();' + (options.customDomain && document.domain != location.hostname ? 'document.domain="' + document.domain + '";' : '') +'document.write("' + html + '");document.close();}())'}));container.style.overflow = 'hidden';//解决如果是给定的百分比,会导致高度算不对的问题setTimeout(function () {if (/%$/.test(options.initialFrameWidth)) {options.minFrameWidth = options.initialFrameWidth = container.offsetWidth;//如果这里给定宽度,会导致ie在拖动窗口大小时,编辑区域不随着变化//                        container.style.width = options.initialFrameWidth + 'px';}if (/%$/.test(options.initialFrameHeight)) {options.minFrameHeight = options.initialFrameHeight = container.offsetHeight;container.style.height = options.initialFrameHeight + 'px';}})}},

纸张样式

/** 纸张设置样式 —— Start*/
.trs_paper_default{width:777px;margin:40px auto;
}
.trs_paper_default2{width:700px;margin:40px auto;
}
.trs_paper_A4{width:637px;margin:40px auto;
}
.trs_paper_B5{width:597px;margin:40px auto;
}
/*End*/

然后,在另一个模块中编辑器的宽度不够,输入的时候body会滑动,因此需要在加载的时候修改iframe的默认样式。
在自定义指令的link方法中尝试修改body的宽度失败,应该在加载指令的时候,ue.ready(function () {})中修改

//动态加载指令function loadDirective() {LazyLoad.js(["./lib/ueditor_demo/ueditor2/ueditor.config.js?v=7.0", "./lib/ueditor_demo/ueditor2/ueditor.all.js?v=7.0", "./lib/ueditor_demo/js/bottom-menu.js"], function () {var ueditor = '';ueditor = $compile(ueditor)($scope);$($(angular.element(document)).find('ueditorLocation')).append(ueditor);var ue = UE.getEditor('ueditor');// $scope.status.support.content = $scope.list.DOCCONTENT;ue.ready(function () {//设置iframe的body样式 $(ue.body).removeClass("trs_paper_default").addClass("trs_paper_default2");ue.addListener("keydown", function (type, event) {if (event.keyCode === 13) {//获取纯文本// $scope.status.support.content = ue.getContentTxt();}});});});}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部