ueditor 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (430) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +9 -0
  3. data/app/assets/.gitkeep +0 -0
  4. data/app/assets/javascripts/ueditor.js +14 -0
  5. data/app/assets/javascripts/ueditor/CHANGELOG.TXT +152 -0
  6. data/app/assets/javascripts/ueditor/dialogs/anchor/anchor.html +86 -0
  7. data/app/assets/javascripts/ueditor/dialogs/code/code.html +158 -0
  8. data/app/assets/javascripts/ueditor/dialogs/emotion/emotion.css +121 -0
  9. data/app/assets/javascripts/ueditor/dialogs/emotion/emotion.html +35 -0
  10. data/app/assets/javascripts/ueditor/dialogs/emotion/emotion.js +137 -0
  11. data/app/assets/javascripts/ueditor/dialogs/emotion/images/0.gif +0 -0
  12. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0001.gif +0 -0
  13. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0002.gif +0 -0
  14. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0003.gif +0 -0
  15. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0004.gif +0 -0
  16. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0005.gif +0 -0
  17. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0006.gif +0 -0
  18. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0007.gif +0 -0
  19. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0008.gif +0 -0
  20. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0009.gif +0 -0
  21. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0010.gif +0 -0
  22. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0011.gif +0 -0
  23. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0012.gif +0 -0
  24. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0013.gif +0 -0
  25. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0014.gif +0 -0
  26. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0015.gif +0 -0
  27. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0016.gif +0 -0
  28. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0017.gif +0 -0
  29. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0018.gif +0 -0
  30. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0019.gif +0 -0
  31. data/app/assets/javascripts/ueditor/dialogs/emotion/images/babycat/bc_0020.gif +0 -0
  32. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bface.gif +0 -0
  33. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0001.gif +0 -0
  34. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0002.gif +0 -0
  35. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0003.gif +0 -0
  36. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0004.gif +0 -0
  37. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0005.gif +0 -0
  38. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0006.gif +0 -0
  39. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0007.gif +0 -0
  40. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0008.gif +0 -0
  41. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0009.gif +0 -0
  42. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0010.gif +0 -0
  43. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0011.gif +0 -0
  44. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0012.gif +0 -0
  45. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0013.gif +0 -0
  46. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0014.gif +0 -0
  47. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0015.gif +0 -0
  48. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0016.gif +0 -0
  49. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0017.gif +0 -0
  50. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0018.gif +0 -0
  51. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0019.gif +0 -0
  52. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0020.gif +0 -0
  53. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0021.gif +0 -0
  54. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0022.gif +0 -0
  55. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0023.gif +0 -0
  56. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0024.gif +0 -0
  57. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0025.gif +0 -0
  58. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0026.gif +0 -0
  59. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0027.gif +0 -0
  60. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0028.gif +0 -0
  61. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0029.gif +0 -0
  62. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0030.gif +0 -0
  63. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0031.gif +0 -0
  64. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0032.gif +0 -0
  65. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0033.gif +0 -0
  66. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0034.gif +0 -0
  67. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0035.gif +0 -0
  68. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0036.gif +0 -0
  69. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0037.gif +0 -0
  70. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0038.gif +0 -0
  71. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0039.gif +0 -0
  72. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0040.gif +0 -0
  73. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0041.gif +0 -0
  74. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0042.gif +0 -0
  75. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0043.gif +0 -0
  76. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0044.gif +0 -0
  77. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0045.gif +0 -0
  78. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0046.gif +0 -0
  79. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0047.gif +0 -0
  80. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0048.gif +0 -0
  81. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0049.gif +0 -0
  82. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0050.gif +0 -0
  83. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0051.gif +0 -0
  84. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0052.gif +0 -0
  85. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0053.gif +0 -0
  86. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0054.gif +0 -0
  87. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0055.gif +0 -0
  88. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0056.gif +0 -0
  89. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0057.gif +0 -0
  90. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0058.gif +0 -0
  91. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0059.gif +0 -0
  92. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0060.gif +0 -0
  93. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0061.gif +0 -0
  94. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0062.gif +0 -0
  95. data/app/assets/javascripts/ueditor/dialogs/emotion/images/bobo/b_0063.gif +0 -0
  96. data/app/assets/javascripts/ueditor/dialogs/emotion/images/cface.gif +0 -0
  97. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0001.gif +0 -0
  98. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0002.gif +0 -0
  99. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0003.gif +0 -0
  100. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0004.gif +0 -0
  101. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0005.gif +0 -0
  102. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0006.gif +0 -0
  103. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0007.gif +0 -0
  104. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0008.gif +0 -0
  105. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0009.gif +0 -0
  106. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0010.gif +0 -0
  107. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0011.gif +0 -0
  108. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0012.gif +0 -0
  109. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0013.gif +0 -0
  110. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0014.gif +0 -0
  111. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0015.gif +0 -0
  112. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0016.gif +0 -0
  113. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0017.gif +0 -0
  114. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0018.gif +0 -0
  115. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0019.gif +0 -0
  116. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0020.gif +0 -0
  117. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0021.gif +0 -0
  118. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0022.gif +0 -0
  119. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0023.gif +0 -0
  120. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0024.gif +0 -0
  121. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0025.gif +0 -0
  122. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0026.gif +0 -0
  123. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0027.gif +0 -0
  124. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0028.gif +0 -0
  125. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0029.gif +0 -0
  126. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0030.gif +0 -0
  127. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0031.gif +0 -0
  128. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0032.gif +0 -0
  129. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0033.gif +0 -0
  130. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0034.gif +0 -0
  131. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0035.gif +0 -0
  132. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0036.gif +0 -0
  133. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0037.gif +0 -0
  134. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0038.gif +0 -0
  135. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0039.gif +0 -0
  136. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0040.gif +0 -0
  137. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0041.gif +0 -0
  138. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0042.gif +0 -0
  139. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0043.gif +0 -0
  140. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0044.gif +0 -0
  141. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0045.gif +0 -0
  142. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0046.gif +0 -0
  143. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0047.gif +0 -0
  144. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0048.gif +0 -0
  145. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0049.gif +0 -0
  146. data/app/assets/javascripts/ueditor/dialogs/emotion/images/face/f_0050.gif +0 -0
  147. data/app/assets/javascripts/ueditor/dialogs/emotion/images/fface.gif +0 -0
  148. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0001.gif +0 -0
  149. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0002.gif +0 -0
  150. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0003.gif +0 -0
  151. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0004.gif +0 -0
  152. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0005.gif +0 -0
  153. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0006.gif +0 -0
  154. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0007.gif +0 -0
  155. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0008.gif +0 -0
  156. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0009.gif +0 -0
  157. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0010.gif +0 -0
  158. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0011.gif +0 -0
  159. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0012.gif +0 -0
  160. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0013.gif +0 -0
  161. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0014.gif +0 -0
  162. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0015.gif +0 -0
  163. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0016.gif +0 -0
  164. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0017.gif +0 -0
  165. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0018.gif +0 -0
  166. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0019.gif +0 -0
  167. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0020.gif +0 -0
  168. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0021.gif +0 -0
  169. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0022.gif +0 -0
  170. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0023.gif +0 -0
  171. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0024.gif +0 -0
  172. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0025.gif +0 -0
  173. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0026.gif +0 -0
  174. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0027.gif +0 -0
  175. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0028.gif +0 -0
  176. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0029.gif +0 -0
  177. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0030.gif +0 -0
  178. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0031.gif +0 -0
  179. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0032.gif +0 -0
  180. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0033.gif +0 -0
  181. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0034.gif +0 -0
  182. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0035.gif +0 -0
  183. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0036.gif +0 -0
  184. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0037.gif +0 -0
  185. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0038.gif +0 -0
  186. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0039.gif +0 -0
  187. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0040.gif +0 -0
  188. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0041.gif +0 -0
  189. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0042.gif +0 -0
  190. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0043.gif +0 -0
  191. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0044.gif +0 -0
  192. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0045.gif +0 -0
  193. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0046.gif +0 -0
  194. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0047.gif +0 -0
  195. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0048.gif +0 -0
  196. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0049.gif +0 -0
  197. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0050.gif +0 -0
  198. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0051.gif +0 -0
  199. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0052.gif +0 -0
  200. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0053.gif +0 -0
  201. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0054.gif +0 -0
  202. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0055.gif +0 -0
  203. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0056.gif +0 -0
  204. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0057.gif +0 -0
  205. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0058.gif +0 -0
  206. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0059.gif +0 -0
  207. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0060.gif +0 -0
  208. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0061.gif +0 -0
  209. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0062.gif +0 -0
  210. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0063.gif +0 -0
  211. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0064.gif +0 -0
  212. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0065.gif +0 -0
  213. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0066.gif +0 -0
  214. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0067.gif +0 -0
  215. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0068.gif +0 -0
  216. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0069.gif +0 -0
  217. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0070.gif +0 -0
  218. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0071.gif +0 -0
  219. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0072.gif +0 -0
  220. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0073.gif +0 -0
  221. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0074.gif +0 -0
  222. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0075.gif +0 -0
  223. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0076.gif +0 -0
  224. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0077.gif +0 -0
  225. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0078.gif +0 -0
  226. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0079.gif +0 -0
  227. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0080.gif +0 -0
  228. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0081.gif +0 -0
  229. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0082.gif +0 -0
  230. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0083.gif +0 -0
  231. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jx2/j_0084.gif +0 -0
  232. data/app/assets/javascripts/ueditor/dialogs/emotion/images/jxface2.gif +0 -0
  233. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0001.gif +0 -0
  234. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0002.gif +0 -0
  235. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0003.gif +0 -0
  236. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0004.gif +0 -0
  237. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0005.gif +0 -0
  238. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0006.gif +0 -0
  239. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0007.gif +0 -0
  240. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0008.gif +0 -0
  241. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0009.gif +0 -0
  242. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0010.gif +0 -0
  243. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0011.gif +0 -0
  244. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0012.gif +0 -0
  245. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0013.gif +0 -0
  246. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0014.gif +0 -0
  247. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0015.gif +0 -0
  248. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0016.gif +0 -0
  249. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0017.gif +0 -0
  250. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0018.gif +0 -0
  251. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0019.gif +0 -0
  252. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0020.gif +0 -0
  253. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0021.gif +0 -0
  254. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0022.gif +0 -0
  255. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0023.gif +0 -0
  256. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0024.gif +0 -0
  257. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0025.gif +0 -0
  258. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0026.gif +0 -0
  259. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0027.gif +0 -0
  260. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0028.gif +0 -0
  261. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0029.gif +0 -0
  262. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0030.gif +0 -0
  263. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0031.gif +0 -0
  264. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0032.gif +0 -0
  265. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0033.gif +0 -0
  266. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0034.gif +0 -0
  267. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0035.gif +0 -0
  268. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0036.gif +0 -0
  269. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0037.gif +0 -0
  270. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0038.gif +0 -0
  271. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0039.gif +0 -0
  272. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0040.gif +0 -0
  273. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0041.gif +0 -0
  274. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0042.gif +0 -0
  275. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0043.gif +0 -0
  276. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0044.gif +0 -0
  277. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0045.gif +0 -0
  278. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0046.gif +0 -0
  279. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0047.gif +0 -0
  280. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0048.gif +0 -0
  281. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0049.gif +0 -0
  282. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0050.gif +0 -0
  283. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0051.gif +0 -0
  284. data/app/assets/javascripts/ueditor/dialogs/emotion/images/ldw/l_0052.gif +0 -0
  285. data/app/assets/javascripts/ueditor/dialogs/emotion/images/neweditor-tab-bg.png +0 -0
  286. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tface.gif +0 -0
  287. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0001.gif +0 -0
  288. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0002.gif +0 -0
  289. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0003.gif +0 -0
  290. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0004.gif +0 -0
  291. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0005.gif +0 -0
  292. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0006.gif +0 -0
  293. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0007.gif +0 -0
  294. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0008.gif +0 -0
  295. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0009.gif +0 -0
  296. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0010.gif +0 -0
  297. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0011.gif +0 -0
  298. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0012.gif +0 -0
  299. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0013.gif +0 -0
  300. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0014.gif +0 -0
  301. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0015.gif +0 -0
  302. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0016.gif +0 -0
  303. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0017.gif +0 -0
  304. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0018.gif +0 -0
  305. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0019.gif +0 -0
  306. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0020.gif +0 -0
  307. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0021.gif +0 -0
  308. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0022.gif +0 -0
  309. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0023.gif +0 -0
  310. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0024.gif +0 -0
  311. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0025.gif +0 -0
  312. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0026.gif +0 -0
  313. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0027.gif +0 -0
  314. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0028.gif +0 -0
  315. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0029.gif +0 -0
  316. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0030.gif +0 -0
  317. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0031.gif +0 -0
  318. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0032.gif +0 -0
  319. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0033.gif +0 -0
  320. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0034.gif +0 -0
  321. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0035.gif +0 -0
  322. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0036.gif +0 -0
  323. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0037.gif +0 -0
  324. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0038.gif +0 -0
  325. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0039.gif +0 -0
  326. data/app/assets/javascripts/ueditor/dialogs/emotion/images/tsj/t_0040.gif +0 -0
  327. data/app/assets/javascripts/ueditor/dialogs/emotion/images/wface.gif +0 -0
  328. data/app/assets/javascripts/ueditor/dialogs/emotion/images/yface.gif +0 -0
  329. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0001.gif +0 -0
  330. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0002.gif +0 -0
  331. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0003.gif +0 -0
  332. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0004.gif +0 -0
  333. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0005.gif +0 -0
  334. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0006.gif +0 -0
  335. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0007.gif +0 -0
  336. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0008.gif +0 -0
  337. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0009.gif +0 -0
  338. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0010.gif +0 -0
  339. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0011.gif +0 -0
  340. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0012.gif +0 -0
  341. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0013.gif +0 -0
  342. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0014.gif +0 -0
  343. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0015.gif +0 -0
  344. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0016.gif +0 -0
  345. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0017.gif +0 -0
  346. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0018.gif +0 -0
  347. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0019.gif +0 -0
  348. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0020.gif +0 -0
  349. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0021.gif +0 -0
  350. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0022.gif +0 -0
  351. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0023.gif +0 -0
  352. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0024.gif +0 -0
  353. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0025.gif +0 -0
  354. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0026.gif +0 -0
  355. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0027.gif +0 -0
  356. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0028.gif +0 -0
  357. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0029.gif +0 -0
  358. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0030.gif +0 -0
  359. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0031.gif +0 -0
  360. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0032.gif +0 -0
  361. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0033.gif +0 -0
  362. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0034.gif +0 -0
  363. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0035.gif +0 -0
  364. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0036.gif +0 -0
  365. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0037.gif +0 -0
  366. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0038.gif +0 -0
  367. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0039.gif +0 -0
  368. data/app/assets/javascripts/ueditor/dialogs/emotion/images/youa/y_0040.gif +0 -0
  369. data/app/assets/javascripts/ueditor/dialogs/gmap/gmap.html +104 -0
  370. data/app/assets/javascripts/ueditor/dialogs/help/help.html +156 -0
  371. data/app/assets/javascripts/ueditor/dialogs/image/callbacks.js +80 -0
  372. data/app/assets/javascripts/ueditor/dialogs/image/image.html +628 -0
  373. data/app/assets/javascripts/ueditor/dialogs/image/imageUploader.swf +0 -0
  374. data/app/assets/javascripts/ueditor/dialogs/image/tangram.js +1 -0
  375. data/app/assets/javascripts/ueditor/dialogs/insertframe/insertframe.html +131 -0
  376. data/app/assets/javascripts/ueditor/dialogs/internal.js +10 -0
  377. data/app/assets/javascripts/ueditor/dialogs/link/link.html +130 -0
  378. data/app/assets/javascripts/ueditor/dialogs/map/map.html +132 -0
  379. data/app/assets/javascripts/ueditor/dialogs/searchreplace/searchreplace.html +254 -0
  380. data/app/assets/javascripts/ueditor/dialogs/spechars/spechars.html +148 -0
  381. data/app/assets/javascripts/ueditor/dialogs/table/table.html +231 -0
  382. data/app/assets/javascripts/ueditor/dialogs/video/video.html +113 -0
  383. data/app/assets/javascripts/ueditor/dialogs/wordimage/fClipboard_ueditor.swf +0 -0
  384. data/app/assets/javascripts/ueditor/dialogs/wordimage/wordimage.html +250 -0
  385. data/app/assets/javascripts/ueditor/editor_all.js +15690 -0
  386. data/app/assets/javascripts/ueditor/editor_all_min.js +1 -0
  387. data/app/assets/javascripts/ueditor/editor_config.js +337 -0
  388. data/app/assets/javascripts/ueditor/themes/default/iframe.css +1 -0
  389. data/app/assets/javascripts/ueditor/themes/default/images/anchor.gif +0 -0
  390. data/app/assets/javascripts/ueditor/themes/default/images/button-bg.gif +0 -0
  391. data/app/assets/javascripts/ueditor/themes/default/images/copy.png +0 -0
  392. data/app/assets/javascripts/ueditor/themes/default/images/dialog-title-bg.png +0 -0
  393. data/app/assets/javascripts/ueditor/themes/default/images/icons-all.gif +0 -0
  394. data/app/assets/javascripts/ueditor/themes/default/images/icons.gif +0 -0
  395. data/app/assets/javascripts/ueditor/themes/default/images/icons.png +0 -0
  396. data/app/assets/javascripts/ueditor/themes/default/images/imgLable.png +0 -0
  397. data/app/assets/javascripts/ueditor/themes/default/images/left.jpg +0 -0
  398. data/app/assets/javascripts/ueditor/themes/default/images/left_focus.jpg +0 -0
  399. data/app/assets/javascripts/ueditor/themes/default/images/localimage.jpg +0 -0
  400. data/app/assets/javascripts/ueditor/themes/default/images/lock.gif +0 -0
  401. data/app/assets/javascripts/ueditor/themes/default/images/logo.png +0 -0
  402. data/app/assets/javascripts/ueditor/themes/default/images/menu/sparator_v.png +0 -0
  403. data/app/assets/javascripts/ueditor/themes/default/images/neweditor-tab-bg.png +0 -0
  404. data/app/assets/javascripts/ueditor/themes/default/images/none.jpg +0 -0
  405. data/app/assets/javascripts/ueditor/themes/default/images/none_focus.jpg +0 -0
  406. data/app/assets/javascripts/ueditor/themes/default/images/pagebreak.gif +0 -0
  407. data/app/assets/javascripts/ueditor/themes/default/images/right.jpg +0 -0
  408. data/app/assets/javascripts/ueditor/themes/default/images/right_focus.jpg +0 -0
  409. data/app/assets/javascripts/ueditor/themes/default/images/tablepicker/highlighted.gif +0 -0
  410. data/app/assets/javascripts/ueditor/themes/default/images/tablepicker/unhighlighted.gif +0 -0
  411. data/app/assets/javascripts/ueditor/themes/default/images/toolbar_bg.png +0 -0
  412. data/app/assets/javascripts/ueditor/themes/default/images/topbottom.jpg +0 -0
  413. data/app/assets/javascripts/ueditor/themes/default/images/topbottom_focus.jpg +0 -0
  414. data/app/assets/javascripts/ueditor/themes/default/images/upload.png +0 -0
  415. data/app/assets/javascripts/ueditor/themes/default/ueditor.css +1090 -0
  416. data/app/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCore.js +3599 -0
  417. data/app/assets/javascripts/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css +340 -0
  418. data/app/assets/javascripts/ueditor/third-party/codemirror2.15/codemirror.css +104 -0
  419. data/app/assets/javascripts/ueditor/third-party/codemirror2.15/codemirror.js +3581 -0
  420. data/config/routes.rb +7 -0
  421. data/lib/ueditor.rb +29 -3
  422. data/lib/ueditor/config.rb +40 -0
  423. data/lib/ueditor/engine.rb +24 -0
  424. data/lib/ueditor/helpers/asset_tag_helper.rb +12 -0
  425. data/lib/ueditor/helpers/form_builder.rb +11 -0
  426. data/lib/ueditor/helpers/form_helper.rb +24 -0
  427. data/lib/ueditor/helpers/form_tag_helper.rb +22 -0
  428. data/lib/ueditor/utils.rb +51 -0
  429. data/lib/ueditor/version.rb +1 -1
  430. metadata +430 -3
@@ -0,0 +1,104 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
+ "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>Google地图</title>
7
+ <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
8
+ <script type="text/javascript" src="../internal.js"></script>
9
+ <style type="text/css">
10
+ *{color: #838383}
11
+ body {
12
+ font-size: 12px;
13
+ width:540px;
14
+ height: 350px;
15
+ overflow: hidden;
16
+ margin:0px;padding:0px;
17
+ }
18
+ .content{
19
+ padding: 9px 0px 0px 15px;
20
+ height:100%;
21
+ }
22
+ .content table{padding:0px;margin:0px;width: 100%}
23
+ .content table tr{padding:0px;margin:0px; list-style: none;height: 30px; line-height: 30px;}
24
+ #city,
25
+ #address
26
+ {height:21px;background: #FFF;border:1px solid #d7d7d7;padding: 0px; margin: 0px; line-height: 21px;}
27
+ #city{width:90px}
28
+ #address{width:220px}
29
+
30
+ a.doSearch{display:block;text-align:center;line-height:24px; text-decoration: none;height:24px;width:95px;border: 0px;margin:0px;padding:0px;background:url(../../themes/default/images/icons-all.gif) no-repeat;}
31
+ a.doSearch:hover{background-position: 0 -30px;}
32
+ </style>
33
+ </head>
34
+ <body>
35
+ <div class="content">
36
+ <table>
37
+ <tr>
38
+ <!--<td><label for="city">城市:</label></td>-->
39
+ <!--<td><input id="city" type="text" value="北京市" /></td>-->
40
+ <td><label for="address">地址:</label></td>
41
+ <td><input id="address" type="text" value="北京市" /></td>
42
+ <td><a href="javascript:doSearch()" class="doSearch">搜索</a></td>
43
+ </tr>
44
+ </table>
45
+
46
+ <div id="container" style="width: 520px; height: 340px; border: 1px solid gray;"></div>
47
+ </div>
48
+ <script type="text/javascript">
49
+ var map = new google.maps.Map(document.getElementById('container'), {
50
+ zoom: 3,
51
+ streetViewControl: false,
52
+ scaleControl: true,
53
+ mapTypeId: google.maps.MapTypeId.ROADMAP
54
+ });
55
+ var imgcss;
56
+ var marker = new google.maps.Marker({
57
+ map: map,
58
+ draggable: true
59
+ });
60
+ function doSearch(){
61
+ var address = document.getElementById('address').value;
62
+ var geocoder = new google.maps.Geocoder();
63
+ geocoder.geocode( { 'address': address}, function (results, status) {
64
+ if (status == google.maps.GeocoderStatus.OK) {
65
+ var bounds = results[0].geometry.viewport;
66
+ map.fitBounds(bounds);
67
+ marker.setPosition(results[0].geometry.location);
68
+ marker.setTitle(address);
69
+ } else alert('无法定位到该地址!');
70
+ });
71
+ }
72
+ document.getElementById('address').onkeydown = function (evt){
73
+ evt = evt || event;
74
+ if (evt.keyCode == 13) {
75
+ doSearch();
76
+ }
77
+ };
78
+ dialog.onok = function (){
79
+ var center = map.getCenter();
80
+ var point = marker.getPosition();
81
+ var url = "http://maps.google.com/maps/api/staticmap?center=" + center.lat() + ',' + center.lng() + "&zoom=" + map.zoom + "&size=520x340&maptype=" + map.getMapTypeId() + "&markers=" + point.lat() + ',' + point.lng() + "&sensor=false";
82
+ editor.execCommand('inserthtml', '<img width="520" height="340" src="' + url + '"' + (imgcss ? ' style="' + imgcss + '"' :'') + '/>');
83
+ };
84
+
85
+ function getPars(str,par){
86
+ var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
87
+ return reg.exec(str)[1];
88
+ }
89
+ var img = editor.selection.getRange().getClosedNode();
90
+ if(img && img.src.indexOf("http://maps.google.com/maps/api/staticmap")!=-1){
91
+ var url = img.getAttribute("src");
92
+ var centers = getPars(url,"center").split(",");
93
+ point = new google.maps.LatLng(Number(centers[0]),Number(centers[1]));
94
+ map.setCenter(point);
95
+ map.setZoom(Number(getPars(url,"zoom")));
96
+ centers = getPars(url,"markers").split(",");
97
+ marker.setPosition(new google.maps.LatLng(Number(centers[0]),Number(centers[1])));
98
+ imgcss = img.style.cssText;
99
+ }else{
100
+ doSearch();
101
+ }
102
+ </script>
103
+ </body>
104
+ </html>
@@ -0,0 +1,156 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
+ "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title>帮助</title>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
7
+ <script type="text/javascript" src="../internal.js"></script>
8
+ <style type="text/css">
9
+ .head .tab-current{
10
+ background-color:#7DEBFF;
11
+ }
12
+ .hide{
13
+ display:none;
14
+ }
15
+ *{color: #838383}
16
+ body {
17
+
18
+ font-size: 12px;
19
+ width:380px;
20
+ height: 400px;
21
+ overflow: hidden;
22
+ margin:0px;padding:0px;
23
+ }
24
+ .warp{
25
+ padding: 39px 0px 0px 15px;
26
+ height:90%;position:relative;
27
+ }
28
+ h1{font-size:26px;}
29
+ p{font-size:12px;}
30
+ .head{position:absolute;height:31px;top:10px;}
31
+ .content{height:360px;border: 1px solid #ddd;clear:both;padding:5px;overflow: auto;}
32
+
33
+ .head span{width:92px;height:29px;line-height:29px;background:red;display:block;float: left;text-align: center;margin-right: 1px;cursor: pointer; }
34
+ .head span.def{background:url("../../themes/default/images/dialog-title-bg.png") repeat-x;border:1px solid #ccc;}
35
+ .head span.act{background:#FFF;border:1px solid #ccc;border-bottom: 1px solid #FFF}
36
+
37
+ .content table{width:90%;line-height: 20px}
38
+ .content table thead{font-weight: bold;line-height: 25px;}
39
+ </style>
40
+ </head>
41
+ <body>
42
+ <div class="warp">
43
+ <div id="head" class="head">
44
+ <span class="act" onclick="toggle(0)">快捷键</span>
45
+ </div>
46
+ <div class="content">
47
+ <div id="cont0">
48
+ <table>
49
+ <thead>
50
+ <tr>
51
+ <td>快捷键</td>
52
+ <td>功能</td>
53
+ </tr>
54
+ </thead>
55
+ <tbody>
56
+ <tr>
57
+ <td>ctrl+b</td>
58
+ <td>给选中字设置为加粗</td>
59
+ </tr>
60
+ <tr>
61
+ <td>ctrl+c</td>
62
+ <td>复制选中内容</td>
63
+ </tr>
64
+ <tr>
65
+ <td>ctrl+x</td>
66
+ <td>剪切选中内容</td>
67
+ </tr>
68
+ <tr>
69
+ <td>ctrl+v</td>
70
+ <td>粘贴</td>
71
+ </tr>
72
+ <tr>
73
+ <td>ctrl+y</td>
74
+ <td>重新执行上次操作</td>
75
+ </tr>
76
+ <tr>
77
+ <td>ctrl+z</td>
78
+ <td>撤销上一次操作</td>
79
+ </tr>
80
+ <tr>
81
+ <td>ctrl+i</td>
82
+ <td>给选中字设置为斜体</td>
83
+ </tr>
84
+ <tr>
85
+ <td>ctrl+u</td>
86
+ <td>给选中字加下划线</td>
87
+ </tr>
88
+ <tr>
89
+ <td>ctrl+a</td>
90
+ <td>全部选中</td>
91
+ </tr>
92
+ <tr>
93
+ <td>ctrl+shift+c</td>
94
+ <td>清除页面文字格式</td>
95
+ </tr>
96
+ <tr>
97
+ <td>ctrl+shift+l</td>
98
+ <td>页面文字居左显示</td>
99
+ </tr>
100
+ <tr>
101
+ <td>ctrl+shift+r</td>
102
+ <td>页面文字居右显示</td>
103
+ </tr>
104
+ <tr>
105
+ <td>shift+enter</td>
106
+ <td>软回车</td>
107
+ </tr>
108
+ </tbody>
109
+ </table>
110
+ </div>
111
+ </div>
112
+ </div>
113
+ <script type="text/javascript">
114
+ function jbind(obj,evt,fun){
115
+ if(obj.addEventListener){ // firefox,w3c
116
+ obj.addEventListener(evt,fun,false);
117
+ }else{// ie
118
+ obj.attachEvent("on"+evt,function(){fun.apply(obj);});
119
+ }
120
+ }
121
+ function getChildrenByClassName (parentClass,childtag){
122
+ var divs = document.getElementsByTagName("div"),i=0,headChilds,j=0,arr = [];
123
+ for(;i<divs.length;i++){
124
+ if(divs[i].className == parentClass){
125
+ headChilds = divs[i].childNodes;
126
+ }
127
+ }
128
+ for(;j<headChilds.length;j++){
129
+ if(new RegExp(childtag,"i").test(headChilds[j].tagName)){
130
+ arr.push(headChilds[j]);
131
+ }
132
+ }
133
+ return arr;
134
+ }
135
+ function hideAll (){
136
+ var tabs = getChildrenByClassName("head","span"),
137
+ contents = getChildrenByClassName("content","div"),i=0;
138
+ for(;i<tabs.length;i++){
139
+ tabs[i].className = "";
140
+ contents[i].className = "hide";
141
+ }
142
+ }
143
+ function toggle (i){
144
+ hideAll();
145
+ var tabs = getChildrenByClassName("head","span"),
146
+ contents = getChildrenByClassName("content","div");
147
+ for(var s=0;s<tabs.length;s++){
148
+ tabs[s].className = "def";
149
+ }
150
+
151
+ tabs[i].className = "act";
152
+ contents[i].className = "";
153
+ }
154
+ </script>
155
+ </body>
156
+ </html>
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Created by JetBrains WebStorm.
3
+ * User: taoqili
4
+ * Date: 11-9-29
5
+ * Time: 下午3:50
6
+ * To change this template use File | Settings | File Templates.
7
+ */
8
+ /**
9
+ * 选择文件后的回调函数
10
+ * @param Array
11
+ */
12
+ function selectFileCallback(selectFiles){
13
+ // 数组里单个元素为Object,{index:在多图上传的索引号, name:文件名, size:文件大小}
14
+ // 其中size单位为Byte
15
+ console.log("选择了如下文件:");
16
+ var obj;
17
+ for(var i = 0, iLen = selectFiles.length; i < iLen; i++){
18
+ obj = selectFiles[i];
19
+ console.log(obj.index, obj.name, obj.size);
20
+ }
21
+ console.log("===================================");
22
+ }
23
+ /**
24
+ * 文件大小超出时的回调函数
25
+ * @param Object
26
+ */
27
+ function exceedFileCallback(file){
28
+ // 参数为Object,{index:在多图上传的索引号, name:文件名, size:文件大小}
29
+ // 其中size单位为Byte
30
+ console.log("文件超出大小限制:");
31
+ console.log(file.index, file.name, file.size);
32
+ console.log("===================================");
33
+ }
34
+ /**
35
+ * 删除文件后的回调函数
36
+ * @param Array
37
+ */
38
+ function deleteFileCallback(delFiles){
39
+ // 数组里单个元素为Object,{index:在多图上传的索引号, name:文件名, size:文件大小}
40
+ // 其中size单位为Byte
41
+ console.log("删除了如下文件:");
42
+ var obj;
43
+ for(var i = 0, iLen = delFiles.length; i < iLen; i++){
44
+ obj = delFiles[i];
45
+ console.log(obj.index, obj.name, obj.size);
46
+ }
47
+ console.log("===================================");
48
+ }
49
+ /**
50
+ * 开始上传单个文件的回调函数
51
+ * @param Object
52
+ */
53
+ function startUploadCallback(file){
54
+ console.log("开始上传如下文件:");
55
+ console.log(file.name, file.size);
56
+ console.log("===================================");
57
+ }
58
+ /**
59
+ * 单个文件上传完成的回调函数
60
+ * @param Object/String 服务端返回啥,参数就是啥
61
+ */
62
+ function uploadCompleteCallback(data){
63
+ console.log("上传成功", data);
64
+ console.log("===================================");
65
+ }
66
+ /**
67
+ * 单个文件上传失败的回调函数
68
+ * @param Object/String 服务端返回啥,参数就是啥
69
+ */
70
+ function uploadErrorCallback(data){
71
+ console.log("上传失败", data);
72
+ console.log("===================================");
73
+ }
74
+ /**
75
+ * 全部上传完成的回调函数
76
+ */
77
+ function allCompleteCallback(){
78
+ console.log("全部上传成功");
79
+ console.log("===================================");
80
+ }
@@ -0,0 +1,628 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2
+ "http://www.w3.org/TR/html4/loose.dtd">
3
+ <html>
4
+ <head>
5
+ <title></title>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
7
+ <style type="text/css">
8
+ body {
9
+ font-size: 12px;
10
+ overflow: hidden;
11
+ padding: 10px;
12
+ margin: 0;
13
+ color: #838383
14
+ }
15
+
16
+ .tabWarper {
17
+ width: 600px;
18
+ height: 370px;
19
+ overflow: hidden;
20
+ position: relative;
21
+ }
22
+
23
+ .head {
24
+ height: 35px;
25
+ line-height: 35px;
26
+ position: relative;
27
+ z-index: 2
28
+ }
29
+
30
+ .head span {
31
+ width: 62px;
32
+ height: 28px;
33
+ line-height: 28px;
34
+ display: block;
35
+ float: left;
36
+ text-align: center;
37
+ margin-right: 1px;
38
+ cursor: pointer
39
+ }
40
+
41
+ .head span.def {
42
+ background: url("../../themes/default/images/dialog-title-bg.png") repeat-x;
43
+ border: 1px solid #ccc;
44
+ }
45
+
46
+ .head span.act {
47
+ background: #FFF;
48
+ border: 1px solid #ccc;
49
+ border-bottom: 1px solid #FFF
50
+ }
51
+
52
+ .tabContainer {
53
+ width: 1250px;
54
+ height: 320px;
55
+ position: relative;
56
+ top: -6px;
57
+ }
58
+
59
+ .content {
60
+ width: 588px;
61
+ height: 320px;
62
+ float: left;
63
+ border: 1px solid #ddd;
64
+ padding: 5px;
65
+ margin-right: 20px;
66
+ }
67
+
68
+ .content table {
69
+ margin-top: 5px;
70
+ position: relative;
71
+ }
72
+
73
+ .content table tr {
74
+ height: 35px;
75
+ line-height: 35px;
76
+ }
77
+
78
+ .lable {
79
+ text-align: center;
80
+ width: 45px;
81
+ }
82
+
83
+ td input {
84
+ width: 125px;
85
+ height: 21px;
86
+ line-height: 21px;
87
+ background: #FFF;
88
+ border: 1px solid #d7d7d7;
89
+ }
90
+
91
+ #url {
92
+ width: 534px;
93
+ margin-bottom: 2px;
94
+ }
95
+
96
+ #preview {
97
+ width: 330px;
98
+ height: 252px;
99
+ position: absolute;
100
+ top: 50px;
101
+ left: 246px;
102
+ background: #eee;
103
+ padding: 5px;
104
+ overflow: auto
105
+ }
106
+
107
+ .start {
108
+ float: right;
109
+ width: 100px;
110
+ height: 28px;
111
+ line-height: 28px;
112
+ background: #ddd url("../../themes/default/images/upload.png");
113
+ border: 0;
114
+ cursor: pointer
115
+ }
116
+
117
+ .control {
118
+ z-index: 9999;
119
+ position: absolute;
120
+ width: 588px;
121
+ height: 36px;
122
+ line-height: 36px;
123
+ top: 315px;
124
+ left: 6px;
125
+ }
126
+
127
+ .align {
128
+ float: left;
129
+ height: 36px;
130
+ }
131
+
132
+ .singlelable {
133
+ background: url(../../themes/default/images/imgLable.png) -21px 2px no-repeat
134
+ }
135
+
136
+ .batchlable {
137
+ display: block;
138
+ float: left;
139
+ width: 50px;
140
+ height: 36px;
141
+ background: url(../../themes/default/images/imgLable.png) -21px 2px no-repeat
142
+ }
143
+
144
+ .lock-zoom {
145
+ position: absolute;
146
+ width: 25px;
147
+ height: 40px;
148
+ top: 60px;
149
+ left: 200px;
150
+ background: url("../../themes/default/images/lock.gif") 0 -3px;
151
+ }
152
+
153
+ .lock-zoom input {
154
+ position: relative;
155
+ top: 10px;
156
+ left: -2px;
157
+ }
158
+ .flag{color: blue}
159
+ </style>
160
+ <script type="text/javascript" src="../internal.js"></script>
161
+ </head>
162
+ <body>
163
+ <div class="tabWarper">
164
+ <div id="head" class="head">
165
+ <span name="tab1" onclick="switchTab(this,0)" class="act">网络图片</span>
166
+ <span name="tab2" onclick="switchTab(this,1)" class="def">本地上传</span>
167
+ </div>
168
+ <div id="tabs" class="tabContainer">
169
+ <div id="tab1" class="content">
170
+ <table cellpadding="0" cellspacing="0">
171
+ <tr>
172
+ <td class="lable"> 地 址:</td>
173
+ <td><input id="url" type="text" value=""/></td>
174
+ </tr>
175
+
176
+ <tr>
177
+ <td class="lable">宽 度:</td>
178
+ <td><input type="text" id="imgWidth"/> px</td>
179
+ </tr>
180
+ <tr>
181
+ <td class="lable">高 度:</td>
182
+ <td><input type="text" id="imgHeight"/> px</td>
183
+ </tr>
184
+
185
+ <tr>
186
+ <td class="lable">边 框:</td>
187
+ <td><input type="text" id="imgBorder"/> px</td>
188
+ </tr>
189
+ <tr>
190
+ <td class="lable">边 距:</td>
191
+ <td><input type="text" id="imgMargin"/> px</td>
192
+ </tr>
193
+ <tr>
194
+ <td class="lable">描 述:</td>
195
+ <td><input type="text" id="imgTitle"/></td>
196
+ </tr>
197
+ <tr>
198
+ <td class="lable singlelable"></td>
199
+ <td id="singleFloat">
200
+ <img name="none" src="../../themes/default/images/none_focus.jpg" alt="默认" title="默认"
201
+ onclick="imgselect(this)"/>
202
+ <img name="left" src="../../themes/default/images/left.jpg" alt="左浮动" title="左浮动"
203
+ onclick="imgselect(this)"/>
204
+ <img name="right" src="../../themes/default/images/right.jpg" alt="右浮动" title="右浮动"
205
+ onclick="imgselect(this)"/>
206
+ <img name="center" src="../../themes/default/images/topbottom.jpg" alt="居中" title="居中"
207
+ onclick="imgselect(this)"/>
208
+ </td>
209
+ </tr>
210
+ <!--<tr style="display:none" id="originalSize"><td>原 始:</td><td></td></tr>-->
211
+ </table>
212
+ <div id="msg" style="display: none;color: red">
213
+ <span style="font-size: 14px">图片转存步骤:</span>
214
+
215
+ <li style="list-style-type: none;">1.复制本选项卡中图片地址,切换至<span class="flag">本地上传</span></li>
216
+ <li style="list-style-type: none">2.点击<span class="flag">添加图片</span>,在<span class="flag">文件名</span>框中粘贴图片地址</li>
217
+ <li style="list-style-type: none;">3.正常执行图片上传操作即可</li>
218
+ </div>
219
+ <div id="preview"></div>
220
+ <div class="lock-zoom">
221
+ <input id="zoom" title="锁定宽高比例" type="checkbox" checked="checked"/>
222
+ </div>
223
+
224
+ </div>
225
+ <div id="tab2" class="content"></div>
226
+ </div>
227
+ <div id="control" class="control" style="display: none">
228
+ <span class="batchlable"></span>
229
+ <span id="batchFloat" class="align">
230
+ <img name="none" src="../../themes/default/images/none_focus.jpg" alt="默认" title="默认"
231
+ onclick="imgselect(this)"/>
232
+ <img name="left" src="../../themes/default/images/left.jpg" alt="左浮动" title="左浮动"
233
+ onclick="imgselect(this)"/>
234
+ <img name="right" src="../../themes/default/images/right.jpg" alt="右浮动" title="右浮动"
235
+ onclick="imgselect(this)"/>
236
+ <img name="center" src="../../themes/default/images/topbottom.jpg" alt="居中" title="居中"
237
+ onclick="imgselect(this)"/>
238
+ </span>
239
+ <button id="start" class="start" style="display: none"></button>
240
+ </div>
241
+
242
+ </div>
243
+ <script type="text/javascript" src="tangram.js"></script>
244
+
245
+ <!--完整的回调函数,有需要的可以完整取用-->
246
+ <script type="text/javascript" src="callbacks.js"></script>
247
+
248
+ <script type="text/javascript">
249
+ /*-=-=-=-=-=-=-=全局变量模块-=-=-=-=-=-=-*/
250
+ var imageUrls = [], //从服务器返回的上传成功图片数组
251
+ imageCount = 0; //预览框中的图片数量,初始为0
252
+
253
+
254
+ /*-=-=-=-=-=-=-=界面生成模块-=-=-=-=-=-=-*/
255
+
256
+ function switchTab(obj, index) {
257
+ clearFocusClass();
258
+ obj.className = "act";
259
+ g("tabs").style.left = index * (-620) + "px";
260
+ if (obj.getAttribute("name") == "tab2") {
261
+ g("control").style.display = "";
262
+ if (imageCount != 0) {
263
+ dialog.buttons[0].setDisabled(true); //如果预览框中没有图片或者没有成功上传图片,切回来时重新置灰按钮
264
+ }
265
+ } else {
266
+ g("control").style.display = "none";
267
+ dialog.buttons[0].setDisabled(false); //切回来时重新点亮按钮
268
+ }
269
+ }
270
+ function clearFocusClass() {
271
+ var heads = g("head").children;
272
+ for (var i = 0,j; j = heads[i++];) {
273
+ j.className = "def";
274
+ }
275
+ }
276
+ //flash初始化参数
277
+ var flashOptions ={
278
+ createOptions:{
279
+ id:'flash',
280
+ url:'imageUploader.swf',
281
+ width:'588',
282
+ height:'272',
283
+ errorMessage:'Flash插件初始化错误,请更新您的flashplayer版本!',
284
+ wmode:'window',
285
+ ver:'10.0.0',
286
+ // 初始化的参数就是这些,
287
+ vars:{
288
+ width:588, //width是flash的宽
289
+ height:272, //height是flash的高
290
+ gridWidth:115, // gridWidth是每一个预览图片所占的宽度,应该为width的整除
291
+ gridHeight:120, // gridHeight是每一个预览图片所占的高度,应该为height的整除
292
+ picWidth:100, // 单张预览图片的宽度
293
+ picHeight:100, // 单张预览图片的高度
294
+ uploadDataFieldName:'picdata', // POST请求中图片数据的key
295
+ picDescFieldName:'pictitle', // POST请求中图片描述的key
296
+ maxSize:2, // 文件的最大体积,单位M
297
+ compressSize:1, // 上传前如果图片体积超过该值,会先压缩,单位M
298
+ maxNum:32, // 最大上传多少个文件
299
+ backgroundUrl:'', //背景图片,留空默认
300
+ listBackgroundUrl:'', //预览图背景,留空默认
301
+ buttonUrl:'', //按钮背景,留空默认
302
+ compressSide:editor.options.compressSide, //等比压缩的基准,0为按照最长边,1为按照宽度,2为按照高度
303
+ compressLength:editor.options.maxImageSideLength, // 能接受的最大边长,超过该值Flash会自动等比压缩
304
+ url:'/ueditor/images', // 上传处理页面的url地址
305
+ ext:'{"authenticity_token":"参数值1", "param2":"参数值2"}', //可向服务器提交的自定义参数列表
306
+ fileType:'{"description":"图片", "extension":"*.gif;*.jpeg;*.png;*.jpg"}' //上传文件格式限制
307
+
308
+ },
309
+ container: 'tab2'
310
+ },
311
+ selectFileCallback: 'selectFileCallback', // 选择文件的回调
312
+ //exceedFileCallback: 'exceedFileCallback', // 文件超出限制的最大体积时的回调
313
+ deleteFileCallback: 'deleteFileCallback', // 删除文件的回调
314
+ //startUploadCallback: 'startUploadCallback', // 开始上传某个文件时的回调
315
+ uploadCompleteCallback: 'uploadCompleteCallback', // 某个文件上传完成的回调
316
+ uploadErrorCallback: function (data){
317
+ //console && console.log(data);
318
+ }, // 某个文件上传失败的回调
319
+ allCompleteCallback: 'allCompleteCallback'// 全部上传完成时的回调
320
+ //changeFlashHeight: 'changeFlashHeight' // 改变Flash的高度,mode==1的时候才有用
321
+
322
+ }
323
+ var flashObj = new baidu.flash.imageUploader(flashOptions);
324
+
325
+ /*-=-=-=-=-=-=-=逻辑处理模块-=-=-=-=-=-=-*/
326
+ //-----------------核心流程------------------------------
327
+ var img = editor.selection.getRange().getClosedNode(),oWidth,oHeight,percent;
328
+ if (!img) img = document.createElement("img");
329
+ if (img.src) {
330
+ //图片编辑时显示图片信息
331
+ showImageInfo();
332
+ }
333
+ if (document.attachEvent) {
334
+ g("url").onpropertychange = function() {
335
+ if (g("url").value) preloadImg();//trace:解决IE下初始提示bug
336
+ };
337
+ } else {
338
+ g("url").addEventListener("input", function() {
339
+ preloadImg();
340
+ }, false);
341
+ }
342
+ //点击确定时的事件处理
343
+ dialog.onok = function() {
344
+ var actionTab = findActionTab();
345
+ if (actionTab == "tab1") {
346
+ return insertSingle();
347
+ } else if (actionTab == "tab2") {
348
+ return insertBatch();
349
+ }
350
+ };
351
+ //----------------------------------------------------
352
+
353
+ /**
354
+ * 返回false时不会关闭对话框
355
+ */
356
+ function insertSingle() {
357
+ //未成功加载图片直接返回
358
+ if (!img || !img.src) return;
359
+ // if(img.hasAttribute("word_img") && img.src.indexOf("file:///") == -1){
360
+ // img.removeAttribute("word_img");
361
+ // }
362
+ var imgObj = { src: editor.options.relativePath ? img.getAttribute("src",2) : img.src};
363
+ var width = g("imgWidth").value;
364
+ if (!width) width = oWidth;
365
+ if (!isNumber(width)) {
366
+ alert("请输入正确的宽度值!例如:140,201");
367
+ g("imgWidth").value = "";
368
+ g("imgWidth").focus();
369
+ return false;
370
+ }
371
+ var height = g("imgHeight").value;
372
+ if (!height) height = oHeight;
373
+ if (!isNumber(height)) {
374
+ alert("请输入正确的高度值!例如:140,201");
375
+ g("imgHeight").value = "";
376
+ g("imgHeight").focus();
377
+ return false;
378
+ }
379
+ var border = g("imgBorder").value;
380
+ if (!border && border != 0 && !isNumber(border)) {
381
+ alert("请输入正确的边框值!例如:1,2");
382
+ g("imgBorder").value = "";
383
+ g("imgBorder").focus();
384
+ return false;
385
+ }
386
+ var margin = g("imgMargin").value;
387
+ if (!margin && margin != 0 && !isNumber(margin)) {
388
+ alert("请输入正确的边框值!例如:1,2");
389
+ g("imgMargin").value = "";
390
+ g("imgMargin").focus();
391
+ return false;
392
+ }
393
+ imgObj.width = width;
394
+ imgObj.height = height;
395
+ imgObj.border = border ||"";
396
+ imgObj.vspace = imgObj.hspace = margin||"";
397
+ g("imgTitle").value && (imgObj.title = g("imgTitle").value );
398
+ imgObj.floatStyle = getAlign("singleFloat");
399
+ imgObj.data_ue_src=imgObj.src;
400
+ editor.execCommand("insertImage", imgObj);
401
+ img = null;
402
+ }
403
+
404
+ /**
405
+ * 返回false时不会关闭对话框
406
+ */
407
+ function insertBatch() {
408
+ if ( !imageUrls.length ) return;
409
+ var imgObjs = [],
410
+ align = getAlign( "batchFloat" );
411
+
412
+ for ( var i = 0, ci; ci = imageUrls[i++]; ) {
413
+ var tmpObj = {};
414
+ tmpObj.title = ci.title;
415
+ tmpObj.floatStyle = align;
416
+ //修正显示时候的地址数据,如果后台返回的是图片的绝对地址,那么此处无需修正
417
+ tmpObj.data_ue_src = tmpObj.src = editor.options.imagePath + ci.url;
418
+ imgObjs.push( tmpObj );
419
+ }
420
+ editor.execCommand( "insertImage", imgObjs );
421
+ }
422
+
423
+ function findActionTab() {
424
+ var heads = g( "head" ).children;
425
+ for ( var i = 0, j; j = heads[i++]; ) {
426
+ var className = j.className;
427
+ if ( className == "act" ) {
428
+ return j.getAttribute( "name" );
429
+ }
430
+ }
431
+ return "";
432
+ }
433
+
434
+ //预加载图片
435
+ function preloadImg() {
436
+
437
+ var imgType = new RegExp( "/\.(png|gif|jpg|jpeg)$/ig" ),
438
+ urlFilter = "";
439
+ var url = g( "url" ).value, pimg, sourceSize,
440
+ preview = g( "preview" );
441
+ if ( !imgType.test( url ) && url.indexOf( urlFilter ) == -1 ) {
442
+ preview.innerHTML = "不正确的图片格式或者图片域!";
443
+ return;
444
+ }
445
+ preview.innerHTML = "图片加载中……";
446
+ //修正当修改地址时候img对象已经销毁的问题
447
+ if(!img){
448
+ img = document.createElement("img");
449
+ img.src = url;
450
+ }
451
+ img.onload = function() {
452
+ oWidth = this.width;
453
+ oHeight = this.height;
454
+ g("imgWidth").value = oWidth || "";
455
+ g("imgHeight").value = oHeight || "";
456
+ percent = (oWidth / oHeight).toFixed(2);
457
+ setPreview(this,330);
458
+
459
+ };
460
+ img.onerror = function() {
461
+ preview.innerHTML = "图片加载失败,请检查网络!";
462
+ img = null;
463
+ };
464
+ img.src = url;
465
+ }
466
+
467
+ //显示图片信息
468
+ function showImageInfo() {
469
+ //获取图片float方式
470
+ var align = editor.queryCommandValue( 'imagefloat' );
471
+ replaceImg( align );
472
+ if ( img.getAttribute( "word_img" ) ) {
473
+ g( "url" ).value = img.getAttribute( "word_img" ).replace( "&amp;", "&" );
474
+ g( "msg" ).style.display = "";
475
+ } else {
476
+ //g("url").value = img.src.replace("&amp;", "&");
477
+ g( "url" ).value = img.getAttribute( 'data_ue_src' ) || (editor.options.relativePath ?
478
+ img.getAttribute( "src", 2 ).replace( "&amp;", "&" ) : img.src.replace( "&amp;", "&" ));
479
+ }
480
+ g( "imgWidth" ).value = img.width;
481
+ g( "imgHeight" ).value = img.height;
482
+ g( "imgMargin" ).value = img.getAttribute( "vspace" ) || 0;
483
+ g( "imgBorder" ).value = img.getAttribute( "border" ) || 0;
484
+ g( "imgTitle" ).value = img.title;
485
+ setPreview( img, 330 );
486
+ percent = (img.width / img.height).toFixed( 2 );
487
+ }
488
+
489
+ function setPreview( img, max ) {
490
+ var tmp = img.cloneNode( true );
491
+ tmp.width = img.width;
492
+ tmp.height = img.height;
493
+ scale( tmp, max );
494
+ g( "preview" ).innerHTML = '<img src="' + (editor.options.relativePath ? tmp.getAttribute( "src" ) : tmp.src) + '" width="' + img.width + '" height="' + img.height + '" border="' + img.style.border + '" />';
495
+ }
496
+ //更改float的提示图标
497
+ function replaceImg( str ) {
498
+ var imgs = g( "singleFloat" ).children;
499
+ for ( var i = 0, j; j = imgs[i++]; ) {
500
+ imgs[0].src = imgs[0].src.replace( "_focus.jpg", ".jpg" )
501
+ }
502
+ for ( var i = 0, j; j = imgs[i++]; ) {
503
+ if ( j.getAttribute( "name" ) == str ) {
504
+ j.src = j.src.replace( ".jpg", "_focus.jpg" );
505
+ break;
506
+ }
507
+ }
508
+ }
509
+
510
+ /*-=-=-=-=-=-=-=批量上传控制模块-=-=-=-=-=-=-*/
511
+ function upload() {
512
+ flashObj.upload();
513
+ g( "start" ).style.display = "none";
514
+ }
515
+ /**
516
+ * 选择文件后的回调函数
517
+ * @param selectFiles
518
+ */
519
+ function selectFileCallback( selectFiles ) {
520
+ //if(console)console.log("开始选择文件:");
521
+ imageCount += selectFiles.length;
522
+ g( "start" ).style.display = "";
523
+ g( "start" ).onclick = upload;
524
+ dialog.buttons[0].setDisabled( true ); //初始化时置灰确定按钮
525
+
526
+ }
527
+ /**
528
+ * 单个文件上传完成的回调函数
529
+ * @param Object/String 服务端返回啥,参数就是啥
530
+ */
531
+ function uploadCompleteCallback( data ) {
532
+ //debugger
533
+ //if(console)console.log("上传成功", data);
534
+ var info = eval( "(" + data.info + ")" );
535
+ info && imageUrls.push( info );
536
+ imageCount--;
537
+ }
538
+
539
+ //全部上传完成的回调函数
540
+ function allCompleteCallback() {
541
+ //console.log("全部上传成功");
542
+ dialog.buttons[0].setDisabled( false ); //上传完毕后点亮按钮
543
+ }
544
+ /**
545
+ * 删除文件后的回调函数
546
+ * @param Array
547
+ */
548
+ function deleteFileCallback( delFiles ) {
549
+ // 数组里单个元素为Object,{index:在多图上传的索引号, name:文件名, size:文件大小}
550
+ // 其中size单位为Byte
551
+ imageCount -= delFiles.length;
552
+ if ( imageCount == 0 ) {
553
+ g( "start" ).style.display = "none";
554
+ dialog.buttons[0].setDisabled( false ); //上传完毕后点亮按钮
555
+ }
556
+ }
557
+
558
+
559
+ /*-=-=-=-=-=-=-=公共方法模块-=-=-=-=-=-=-*/
560
+ function g( id ) {
561
+ return document.getElementById( id );
562
+ }
563
+ function isNumber( n ) {
564
+ return /^[1-9]\d*$/.test( n );
565
+ }
566
+ /**
567
+ * 等比例缩放图片
568
+ * @param img
569
+ * @param max
570
+ */
571
+ function scale( img, max ) {
572
+ var width = 0, height = 0, percent;
573
+ img.sWidth = img.width;
574
+ img.sHeight = img.height;
575
+ if ( img.width > max || img.height > max ) {
576
+ if ( img.width >= img.height ) {
577
+ if ( width = img.width - max ) {
578
+ percent = (width / img.width).toFixed( 2 );
579
+ img.height = img.height - img.height * percent;
580
+ img.width = max;
581
+ }
582
+ } else {
583
+ if ( height = img.height - max ) {
584
+ percent = (height / img.height).toFixed( 2 );
585
+ img.width = img.width - img.width * percent;
586
+ img.height = max;
587
+ }
588
+ }
589
+ }
590
+ }
591
+ function imgselect( simg ) {
592
+ var childs = simg.parentNode.children;
593
+ for ( var i = 0, child; child = childs[i++]; ) {
594
+ if ( /img/ig.test( child.tagName ) ) {
595
+ child.src = child.src.replace( "_focus.jpg", ".jpg" );
596
+ }
597
+ }
598
+ simg.src = simg.src.replace( ".jpg", "_focus.jpg" );
599
+ }
600
+ //获取id下选中图片的name
601
+ function getAlign( id ) {
602
+ var imgs = g( id ).children;
603
+ for ( var i = 0, img; img = imgs[i++]; ) {
604
+ if ( img.src.indexOf( "_focus" ) != -1 ) {
605
+ break;
606
+ }
607
+ }
608
+ return i != imgs.length + 1 ? img.name : 'none';
609
+ }
610
+
611
+ var imgWidth = g( "imgWidth" ),
612
+ imgHeight = g( "imgHeight" ),
613
+ zoom = g( 'zoom' );
614
+
615
+ imgWidth.onkeyup = function () {
616
+ if ( !isNaN( this.value ) && zoom.checked ) {
617
+ imgHeight.value = Math.round( this.value / percent ) || this.value;
618
+ }
619
+ };
620
+ imgHeight.onkeyup = function () {
621
+ if ( !isNaN( this.value ) && zoom.checked ) {
622
+ imgWidth.value = Math.round( this.value * percent ) || this.value;
623
+ }
624
+ }
625
+
626
+ </script>
627
+ </body>
628
+ </html>