55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| 
								 | 
							
								/*******************************************************************************
							 | 
						|||
| 
								 | 
							
								* KindEditor - WYSIWYG HTML Editor for Internet
							 | 
						|||
| 
								 | 
							
								* Copyright (C) 2006-2011 kindsoft.net
							 | 
						|||
| 
								 | 
							
								*
							 | 
						|||
| 
								 | 
							
								* @author Roddy <luolonghao@gmail.com>
							 | 
						|||
| 
								 | 
							
								* @site http://www.kindsoft.net/
							 | 
						|||
| 
								 | 
							
								* @licence http://www.kindsoft.net/license.php
							 | 
						|||
| 
								 | 
							
								*******************************************************************************/
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								KindEditor.plugin('autoheight', function(K) {
							 | 
						|||
| 
								 | 
							
									var self = this;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if (!self.autoHeightMode) {
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									var minHeight;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									function hideScroll() {
							 | 
						|||
| 
								 | 
							
										var edit = self.edit;
							 | 
						|||
| 
								 | 
							
										var body = edit.doc.body;
							 | 
						|||
| 
								 | 
							
										edit.iframe[0].scroll = 'no';
							 | 
						|||
| 
								 | 
							
										body.style.overflowY = 'hidden';
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									function resetHeight() {
							 | 
						|||
| 
								 | 
							
										var edit = self.edit;
							 | 
						|||
| 
								 | 
							
										var body = edit.doc.body;
							 | 
						|||
| 
								 | 
							
										edit.iframe.height(minHeight);
							 | 
						|||
| 
								 | 
							
										self.resize(null, Math.max((K.IE ? body.scrollHeight : body.offsetHeight) + 76, minHeight));
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									function init() {
							 | 
						|||
| 
								 | 
							
										minHeight = K.removeUnit(self.height);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										self.edit.afterChange(resetHeight);
							 | 
						|||
| 
								 | 
							
										hideScroll();
							 | 
						|||
| 
								 | 
							
										resetHeight();
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if (self.isCreated) {
							 | 
						|||
| 
								 | 
							
										init();
							 | 
						|||
| 
								 | 
							
									} else {
							 | 
						|||
| 
								 | 
							
										self.afterCreate(init);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								});
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								* 如何实现真正的自动高度?
							 | 
						|||
| 
								 | 
							
								* 修改编辑器高度之后,再次获取body内容高度时,最小值只会是当前iframe的设置高度,这样就导致高度只增不减。
							 | 
						|||
| 
								 | 
							
								* 所以每次获取body内容高度之前,先将iframe的高度重置为最小高度,这样就能获取body的实际高度。
							 | 
						|||
| 
								 | 
							
								* 由此就实现了真正的自动高度
							 | 
						|||
| 
								 | 
							
								* 测试:chrome、firefox、IE9、IE8
							 | 
						|||
| 
								 | 
							
								* */
							 |