94 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			94 lines
		
	
	
		
			3.3 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
							 | 
						||
| 
								 | 
							
								*******************************************************************************/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Baidu Maps: http://dev.baidu.com/wiki/map/index.php?title=%E9%A6%96%E9%A1%B5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								KindEditor.plugin('baidumap', function(K) {
							 | 
						||
| 
								 | 
							
									var self = this, name = 'baidumap', lang = self.lang(name + '.');
							 | 
						||
| 
								 | 
							
									var mapWidth = K.undef(self.mapWidth, 558);
							 | 
						||
| 
								 | 
							
									var mapHeight = K.undef(self.mapHeight, 360);
							 | 
						||
| 
								 | 
							
									self.clickToolbar(name, function() {
							 | 
						||
| 
								 | 
							
										var html = ['<div style="padding:10px 20px;">',
							 | 
						||
| 
								 | 
							
											'<div class="ke-header">',
							 | 
						||
| 
								 | 
							
											// left start
							 | 
						||
| 
								 | 
							
											'<div class="ke-left">',
							 | 
						||
| 
								 | 
							
											lang.address + ' <input id="kindeditor_plugin_map_address" name="address" class="ke-input-text" value="" style="width:200px;" /> ',
							 | 
						||
| 
								 | 
							
											'<span class="ke-button-common ke-button-outer">',
							 | 
						||
| 
								 | 
							
											'<input type="button" name="searchBtn" class="ke-button-common ke-button" value="' + lang.search + '" />',
							 | 
						||
| 
								 | 
							
											'</span>',
							 | 
						||
| 
								 | 
							
											'</div>',
							 | 
						||
| 
								 | 
							
											// right start
							 | 
						||
| 
								 | 
							
											'<div class="ke-right">',
							 | 
						||
| 
								 | 
							
											'<input type="checkbox" id="keInsertDynamicMap" name="insertDynamicMap" value="1" /> <label for="keInsertDynamicMap">' + lang.insertDynamicMap + '</label>',
							 | 
						||
| 
								 | 
							
											'</div>',
							 | 
						||
| 
								 | 
							
											'<div class="ke-clearfix"></div>',
							 | 
						||
| 
								 | 
							
											'</div>',
							 | 
						||
| 
								 | 
							
											'<div class="ke-map" style="width:' + mapWidth + 'px;height:' + mapHeight + 'px;"></div>',
							 | 
						||
| 
								 | 
							
											'</div>'].join('');
							 | 
						||
| 
								 | 
							
										var dialog = self.createDialog({
							 | 
						||
| 
								 | 
							
											name : name,
							 | 
						||
| 
								 | 
							
											width : mapWidth + 42,
							 | 
						||
| 
								 | 
							
											title : self.lang(name),
							 | 
						||
| 
								 | 
							
											body : html,
							 | 
						||
| 
								 | 
							
											yesBtn : {
							 | 
						||
| 
								 | 
							
												name : self.lang('yes'),
							 | 
						||
| 
								 | 
							
												click : function(e) {
							 | 
						||
| 
								 | 
							
													var map = win.map;
							 | 
						||
| 
								 | 
							
													var centerObj = map.getCenter();
							 | 
						||
| 
								 | 
							
													var center = centerObj.lng + ',' + centerObj.lat;
							 | 
						||
| 
								 | 
							
													var zoom = map.getZoom();
							 | 
						||
| 
								 | 
							
													var url = [checkbox[0].checked ? self.pluginsPath + 'baidumap/index.html' : 'http://api.map.baidu.com/staticimage',
							 | 
						||
| 
								 | 
							
														'?center=' + encodeURIComponent(center),
							 | 
						||
| 
								 | 
							
														'&zoom=' + encodeURIComponent(zoom),
							 | 
						||
| 
								 | 
							
														'&width=' + mapWidth,
							 | 
						||
| 
								 | 
							
														'&height=' + mapHeight,
							 | 
						||
| 
								 | 
							
														'&markers=' + encodeURIComponent(center),
							 | 
						||
| 
								 | 
							
														'&markerStyles=' + encodeURIComponent('l,A')].join('');
							 | 
						||
| 
								 | 
							
													if (checkbox[0].checked) {
							 | 
						||
| 
								 | 
							
														self.insertHtml('<iframe src="' + url + '" frameborder="0" style="width:' + (mapWidth + 2) + 'px;height:' + (mapHeight + 2) + 'px;"></iframe>');
							 | 
						||
| 
								 | 
							
													} else {
							 | 
						||
| 
								 | 
							
														self.exec('insertimage', url);
							 | 
						||
| 
								 | 
							
													}
							 | 
						||
| 
								 | 
							
													self.hideDialog().focus();
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
											},
							 | 
						||
| 
								 | 
							
											beforeRemove : function() {
							 | 
						||
| 
								 | 
							
												searchBtn.remove();
							 | 
						||
| 
								 | 
							
												if (doc) {
							 | 
						||
| 
								 | 
							
													doc.write('');
							 | 
						||
| 
								 | 
							
												}
							 | 
						||
| 
								 | 
							
												iframe.remove();
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
										var div = dialog.div,
							 | 
						||
| 
								 | 
							
											addressBox = K('[name="address"]', div),
							 | 
						||
| 
								 | 
							
											searchBtn = K('[name="searchBtn"]', div),
							 | 
						||
| 
								 | 
							
											checkbox = K('[name="insertDynamicMap"]', dialog.div),
							 | 
						||
| 
								 | 
							
											win, doc;
							 | 
						||
| 
								 | 
							
										var iframe = K('<iframe class="ke-textarea" frameborder="0" src="' + self.pluginsPath + 'baidumap/map.html" style="width:' + mapWidth + 'px;height:' + mapHeight + 'px;"></iframe>');
							 | 
						||
| 
								 | 
							
										function ready() {
							 | 
						||
| 
								 | 
							
											win = iframe[0].contentWindow;
							 | 
						||
| 
								 | 
							
											doc = K.iframeDoc(iframe);
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										iframe.bind('load', function() {
							 | 
						||
| 
								 | 
							
											iframe.unbind('load');
							 | 
						||
| 
								 | 
							
											if (K.IE) {
							 | 
						||
| 
								 | 
							
												ready();
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												setTimeout(ready, 0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
										K('.ke-map', div).replaceWith(iframe);
							 | 
						||
| 
								 | 
							
										// search map
							 | 
						||
| 
								 | 
							
										searchBtn.click(function() {
							 | 
						||
| 
								 | 
							
											win.search(addressBox.val());
							 | 
						||
| 
								 | 
							
										});
							 | 
						||
| 
								 | 
							
									});
							 | 
						||
| 
								 | 
							
								});
							 |