石墨文档快捷格式插件

石墨文档快捷键格式应用,石墨文档格式刷,点击左下角小窗口来使用

  1. // ==UserScript==
  2. // @name 石墨文档快捷格式插件
  3. // @namespace QQ421566927
  4. // @version 0.5
  5. // @description 石墨文档快捷键格式应用,石墨文档格式刷,点击左下角小窗口来使用
  6. // @resource layuiCss https://www.layuicdn.com/layui-v2.5.7/css/layui.css
  7. // @resource layDate https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/css/modules/laydate/default/laydate.css?v=5.0.9
  8. // @resource layerCss https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/css/modules/layer/default/layer.css?v=3.1.1
  9. // @resource codeCss https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/css/modules/code.css
  10. // @require https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js
  11. // @require https://cdn.bootcdn.net/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js
  12. // @require https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/layui.all.min.js
  13. // @require https://cdn.bootcdn.net/ajax/libs/mousetrap/1.6.5/mousetrap.min.js
  14. // @require https://cdn.bootcdn.net/ajax/libs/mousetrap/1.6.5/plugins/record/mousetrap-record.min.js
  15. // @require https://cdn.bootcss.com/store.js/1.3.20/store.min.js
  16. // @match https://shimo.im/docs/*
  17. // @grant GM_log
  18. // @grant GM_addStyle
  19. // @grant GM_getResourceText
  20. // @grant GM_xmlhttpRequest
  21. // @grant GM_getResourceURL
  22. // @license MIT
  23. // ==/UserScript==
  24. (function() {
  25. 'use strict';
  26.  
  27. var defaultData = [
  28. {
  29. "key": "shimo_format_1",
  30. "value": {
  31. "name": "默认黑字",
  32. "content":"",
  33. "format": "<span class=\"ql-author-45317226\" style=\"color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);color: #000000;\">预览</span>",
  34. "hotkey": "ctrl+0",
  35. "isDefault": true
  36. }
  37. },
  38. {
  39. "key": "shimo_format_2",
  40. "value": {
  41. "name": "红字删除线",
  42. "content":"",
  43. "format": "<s style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</s>",
  44. "hotkey": "ctrl+1",
  45. "isDefault": true
  46. }
  47. },
  48. {
  49. "key": "shimo_format_3",
  50. "value": {
  51. "name": "蓝字加粗",
  52. "content":"",
  53. "format": "<strong style=\"color: rgb(25, 67, 156);color: #19439c;\">预览</strong>",
  54. "hotkey": "ctrl+2",
  55. "isDefault": true
  56. }
  57. },
  58. {
  59. "key": "shimo_format_4",
  60. "value": {
  61. "name": "绿字加粗",
  62. "content":"",
  63. "format": "<strong style=\"color: rgb(28, 114, 49);color: #1c7231;\">预览</strong>",
  64. "hotkey": "ctrl+3",
  65. "isDefault": true
  66. }
  67. },
  68. {
  69. "key": "shimo_format_5",
  70. "value": {
  71. "name": "①",
  72. "content":"①",
  73. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  74. "hotkey": "alt+1",
  75. "isDefault": true
  76. }
  77. },
  78. {
  79. "key": "shimo_format_6",
  80. "value": {
  81. "name": "②",
  82. "content":"②",
  83. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  84. "hotkey": "alt+2",
  85. "isDefault": true
  86. }
  87. },
  88. {
  89. "key": "shimo_format_7",
  90. "value": {
  91. "name": "③",
  92. "content":"③",
  93. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  94. "hotkey": "alt+3",
  95. "isDefault": true
  96. }
  97. },
  98. {
  99. "key": "shimo_format_8",
  100. "value": {
  101. "name": "④",
  102. "content":"④",
  103. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  104. "hotkey": "alt+4",
  105. "isDefault": true
  106. }
  107. },
  108. {
  109. "key": "shimo_format_9",
  110. "value": {
  111. "name": "⑤",
  112. "content":"⑤",
  113. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  114. "hotkey": "alt+5",
  115. "isDefault": true
  116. }
  117. },
  118. {
  119. "key": "shimo_format_10",
  120. "value": {
  121. "name": "⑥",
  122. "content":"⑥",
  123. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  124. "hotkey": "alt+6",
  125. "isDefault": true
  126. }
  127. },
  128. {
  129. "key": "shimo_format_11",
  130. "value": {
  131. "name": "⑦",
  132. "content":"⑦",
  133. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  134. "hotkey": "alt+7",
  135. "isDefault": true
  136. }
  137. },
  138. {
  139. "key": "shimo_format_12",
  140. "value": {
  141. "name": "⑧",
  142. "content":"⑧",
  143. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  144. "hotkey": "alt+8",
  145. "isDefault": true
  146. }
  147. },
  148. {
  149. "key": "shimo_format_13",
  150. "value": {
  151. "name": "⑨",
  152. "content":"⑨",
  153. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  154. "hotkey": "alt+9",
  155. "isDefault": true
  156. }
  157. },
  158. {
  159. "key": "shimo_format_14",
  160. "value": {
  161. "name": "⑩",
  162. "content":"⑩",
  163. "format": "<strong style=\"color: rgb(255, 0, 0);color: #ff0000;\">预览</strong>",
  164. "hotkey": "alt+0",
  165. "isDefault": true
  166. }
  167. }
  168. ]
  169.  
  170. var layuiCss_CssSrc = GM_getResourceText ("layuiCss");
  171. var layDate_CssSrc = GM_getResourceText ("layDate");
  172. var layerCss_CssSrc = GM_getResourceText ("layerCss");
  173. var codeCss_CssSrc = GM_getResourceText ("codeCss");
  174. GM_addStyle (layuiCss_CssSrc);
  175. GM_addStyle (layDate_CssSrc);
  176. GM_addStyle (layerCss_CssSrc);
  177. GM_addStyle (codeCss_CssSrc);
  178.  
  179. var style = document.createElement("style");
  180. style.type = "text/css";
  181. var text = document.createTextNode(".layui-layer-ico{background: url('https://cdn.bootcdn.net/ajax/libs/layui/2.5.7/css/modules/layer/default/icon.png') no-repeat;}@font-face {font-family: layui-icon;src: url('https://www.layuicdn.com/layui-v2.5.7/font/iconfont.eot?v=256');src: url('https://www.layuicdn.com/layui-v2.5.7/font/iconfont.eot?v=256#iefix') format('embedded-opentype'),url('https://www.layuicdn.com/layui-v2.5.7/font/iconfont.woff2?v=256') format('woff2'),url('https://www.layuicdn.com/layui-v2.5.7/font/iconfont.woff?v=256') format('woff'),url('https://www.layuicdn.com/layui-v2.5.7/font/iconfont.ttf?v=256')format('truetype'),url('https://www.layuicdn.com/layui-v2.5.7/font/iconfont.svg?v=256#layui-icon') format('svg')}");
  182. style.appendChild(text);
  183. var head = document.getElementsByTagName("head")[0];
  184. head.appendChild(style);
  185.  
  186. //全局变量
  187. var canCopy = false
  188. var tempNumber = 0
  189. var isRecord = false
  190. var hotKeyList = []
  191. var keyPrefix = 'shimo_format_'
  192. var isPaste = false
  193.  
  194.  
  195. var getRecordData = function () {
  196. var formatData = []
  197.  
  198. if(!store.get(keyPrefix+'1')){
  199. defaultData.forEach(function (item) {
  200. store.set(item.key, item.value)
  201. })
  202. }
  203.  
  204. store.forEach(function(key, val) {
  205. if(key.indexOf(keyPrefix) != -1){
  206. val.number = key.split('_')[2]
  207. formatData[val.number] = val
  208. if(val.hotkey != ''){
  209. hotKeyList[val.hotkey] = val
  210. }
  211. }
  212. })
  213. return formatData
  214. }
  215.  
  216. var setRecordData = function (number,name,content,format,hotkey,isDefault) {
  217. var formatData = {
  218. name:name,
  219. content:content,
  220. format:format,
  221. hotkey:hotkey,
  222. isDefault:isDefault
  223. }
  224. store.set(keyPrefix+number, formatData)
  225. }
  226.  
  227. var getInsertNumber = function () {
  228. var numberList = []
  229.  
  230. store.forEach(function(key, val) {
  231. if(key.indexOf(keyPrefix) != -1){
  232. var splitRes = key.split('_')
  233. if(splitRes.length == 3){
  234. numberList.push(splitRes[2])
  235. }
  236. }
  237. })
  238.  
  239. if(numberList.length > 0){
  240. var n = Math.max.apply(null, numberList);
  241. return n + 1
  242. }else{
  243. return 1
  244. }
  245. }
  246.  
  247. var getBaseRowData = function (item) {
  248. var row = '<div name="p_data_row_'+item.number+'" isdefault="'+item.isDefault+'" class="layui-row" style="font-size: 16px;margin-left:-160px;padding-left: 50px;">\n' +
  249. ' <div class="layui-col-sm2">\n' +
  250. ' &nbsp;' +
  251. ' </div>\n' +
  252. ' <div class="layui-col-sm1" style="text-align: right;">\n' +
  253. ' 名称:' +
  254. ' </div>\n' +
  255. ' <div class="layui-col-sm2">\n' +
  256. ' <input type="text" style="width: 90px;" value="'+item.name+'" name="p_data_name" autocomplete="off" placeholder="请输入名称" class="layui-input-inline">\n' +
  257. ' </div>\n' +
  258. ' <div class="layui-col-sm1" style="text-align: center;margin-left:-30px;">\n' +
  259. ' <a name="p_data_record" href="javascript:void(0)"><i class="layui-icon layui-icon-radio" style="font-size: 19px; color: #1E9FFF;padding-top: 3px"></i></a>\n' +
  260. ' </div>\n' +
  261. ' <div class="layui-col-sm1">\n' +
  262. ' <span name="p_data_preview">'+item.format+'</span>\n' +
  263. ' </div>\n' +
  264. ' <div class="layui-col-sm2">\n' +
  265. ' <input type="text" style="width: 90px;" value="'+item.content+'" name="p_data_content" autocomplete="off" placeholder="替换文字" class="layui-input-inline">\n' +
  266. ' </div>\n' +
  267. ' <div class="layui-col-sm2" name="p_data_quike" style="padding-top: 2px;">\n' +
  268. ' <input style="width: 130px;font-size: 16px;" value="'+item.hotkey+'" type="text" name="title" lay-verify="title" autocomplete="off" placeholder="录制快捷键" class="layui-input-inline" disabled>\n' +
  269. ' </div>\n' +
  270. ' <div class="layui-col-sm1" style="padding-left: 20px;">\n' +
  271. ' <a name="p_data_brush" href="javascript:void(0)"><i class="layui-icon layui-icon-fonts-clear" style="font-size: 19px; color: #1E9FFF;padding-top: 3px"></i></a>\n' +
  272. ' <a name="p_data_del" href="javascript:void(0)"><i class="layui-icon layui-icon-delete" style="font-size: 19px; color: #1E9FFF;padding-top: 3px"></i></a>\n' +
  273. ' </div>\n' +
  274. '</div>'
  275.  
  276. return row
  277.  
  278. }
  279.  
  280. var render = function () {
  281. var htmlStr = ''
  282. var addDataButton = '<div class="layui-col-md12" style="text-align: center;margin-top: 4%"><button name="p_data_add_button" type="button" style="background-color: #5c5c5c;" class="layui-btn"><i class="layui-icon">&#xe608;</i> 添加</button></div>'
  283. var dataRes = getRecordData()
  284.  
  285. dataRes.forEach(function (item) {
  286. var tempHtml = getBaseRowData(item)
  287. htmlStr += tempHtml
  288. })
  289. htmlStr += addDataButton
  290. return htmlStr
  291. }
  292.  
  293. var getRowNum = function(el){
  294. var prent = $(el).parents('div[name^="p_data_row_"]')
  295. var num = prent.attr('name').split('_')[3]
  296. return num
  297. }
  298.  
  299. //记忆窗口
  300. var setWindow = function(layero,type){
  301. var top = $(layero).css('top').replace('px','')
  302. var left = $(layero).css('left').replace('px','')
  303. var height = $(layero).css('height').replace('px','')
  304. var width = $(layero).css('width').replace('px','')
  305.  
  306. if(type == 'moveWindow'){
  307. store.set('layer_window_top',parseInt(top) == 0 ? 1 : parseInt(top))
  308. store.set('layer_window_left',parseInt(left) == 0 ? 1 : parseInt(left))
  309. }
  310.  
  311. if(type == 'reSize'){
  312. store.set('layer_window_height',height)
  313. store.set('layer_window_width',width)
  314. }
  315. }
  316.  
  317. var replaceSelection = function(replaceText) {
  318. if (window.getSelection) {
  319. var selecter = window.getSelection();
  320. var range = selecter.getRangeAt(0);
  321. let textEl = document.createRange().createContextualFragment(replaceText).children;
  322. console.log(textEl)
  323. selecter.removeAllRanges()
  324. selecter.empty();
  325. range.deleteContents()
  326. range.insertNode(textEl[0]);
  327. } else if (document.selection) {//ie
  328. var selecter = document.selection.createRange();
  329. selecter.select();
  330. selecter.pasteHTML(replaceText);
  331. }
  332. }
  333.  
  334.  
  335. layui.use('layer', function(){
  336. var $ = layui.jquery
  337. var active = {
  338. setTop: function(firstOpen = false){
  339. var that = this;
  340. //多窗口模式,层叠置顶
  341. var top = store.get('layer_window_top') ? store.get('layer_window_top') : '280'
  342. var left = store.get('layer_window_left') ? store.get('layer_window_left') : '900'
  343. var width = store.get('layer_window_width') ? store.get('layer_window_width')+'px' : '700px'
  344. var height = store.get('layer_window_height') ? store.get('layer_window_height')+'px' : '530px'
  345. layer.open({
  346. id:'p_data_all'
  347. ,type: 1 //此处以iframe举例
  348. ,title: '快捷格式插件'
  349. ,area: [ width,height]
  350. ,shade: 0
  351. ,maxmin: true
  352. ,closeBtn: false
  353. ,offset: [
  354. top
  355. ,left
  356. ]
  357. ,content: render()
  358. ,yes: function(){
  359. $(that).click();
  360. }
  361. ,btn2: function(){
  362. layer.closeAll();
  363. }
  364. ,zIndex: layer.zIndex
  365. ,success: function(layero){
  366. layer.setTop(layero);
  367. if(firstOpen){
  368. setTimeout(function () {
  369. $('.layui-layer-min').click()
  370. },1000)
  371. }
  372. },
  373. moveEnd: function(layero){
  374. setWindow(layero,'moveWindow')
  375. },
  376. resizing: function(layero){
  377. setWindow(layero,'reSize');
  378. },
  379. });
  380. },
  381. msg:function (msg) {
  382. layer.msg(msg)
  383. }
  384. };
  385. active.setTop(true)
  386.  
  387. //监听部分
  388. //添加按钮
  389. $(document).on('click',':button[name="p_data_add_button"]',function () {
  390. var number = getInsertNumber()
  391. setRecordData(number,'','','预览','',false)
  392. $('#p_data_all').html(render())
  393. })
  394.  
  395. //名称输入框监听
  396. $(document).on('blur',':input[name="p_data_name"]',function () {
  397. var input_name = $(this).val()
  398. var num = getRowNum(this)
  399. var cur = store.get(keyPrefix+num)
  400. setRecordData(num,input_name,cur.content,cur.format,cur.hotkey,cur.isDefault)
  401. layer.msg('保存成功',{zIndex:layer.zIndex})
  402. })
  403.  
  404. //内容输入框监听
  405. $(document).on('blur',':input[name="p_data_content"]',function () {
  406. var input_content = $(this).val()
  407. var num = getRowNum(this)
  408. var cur = store.get(keyPrefix+num)
  409. setRecordData(num,cur.name,input_content,cur.format,cur.hotkey,cur.isDefault)
  410. layer.msg('保存成功',{zIndex:layer.zIndex})
  411. })
  412.  
  413. //录制
  414. $(document).on('click','a[name="p_data_record"]',function () {
  415. canCopy = true
  416. tempNumber = getRowNum(this)
  417. layer.msg('请选中文本格式后使用 Ctrl+C 录入格式',{zIndex:layer.zIndex})
  418. })
  419.  
  420. //快捷键
  421. $(document).on('click','div[name="p_data_quike"]',function () {
  422. isRecord = true
  423. layer.msg('请输入快捷键',{zIndex:layer.zIndex})
  424. tempNumber = getRowNum(this)
  425. })
  426.  
  427. //删除
  428. $(document).on('click','a[name="p_data_del"]',function () {
  429. var prent = $(this).parents('div[name^="p_data_row_"]')
  430. if($(prent).attr('isdefault') == 'true'){
  431. layer.msg('默认配置不可删除!',{zIndex:layer.zIndex})
  432. return false;
  433. }
  434. var num = prent.attr('name').split('_')[3]
  435. store.remove(keyPrefix+num)
  436. $('#p_data_all').html(render())
  437. layer.msg('删除成功',{zIndex:layer.zIndex})
  438. })
  439.  
  440.  
  441. //单机刷子
  442. $(document).on('click','a[name="p_data_brush"]',function () {
  443. let allData = getRecordData()
  444. var itemEl = $(this).parent().parent()
  445. var elIndex = ($('#p_data_all div').index(itemEl)/9)+1
  446. console.log(elIndex)
  447. layer.msg('请选中需要应用的文字',{zIndex:layer.zIndex})
  448. var brushOver = false
  449. //$textElem是指编辑器可编辑区域(详情请查看源码)
  450. $('div.ql-editor.notranslate').on('mouseup', e => {
  451. if(brushOver == false){
  452. brushOver = true
  453. // document.querySelector('.ql-clean.ql-toolbar-widget').click()
  454. var selection = window.getSelection() || document.getSelection() || document.selection.createRange();
  455. console.log(selection)
  456. console.log(selection.text)
  457. var item = allData[elIndex]
  458. if(item.content == ""){
  459. var selectionStr = window.getSelection().toString()
  460. }else{
  461. var strLen = window.getSelection().toString().length
  462. var selectionStr = ""
  463. for (var i=0;i<strLen;i++){
  464. selectionStr += item.content
  465. }
  466. }
  467. var copyStr = item.format.replace('>预览</','>'+selectionStr+'</')
  468. replaceSelection(copyStr)
  469. }
  470. })
  471. })
  472.  
  473. });
  474.  
  475. document.addEventListener('paste', function (event) {
  476. if(isPaste){
  477. isPaste = false
  478. layer.msg('应用成功!',{zIndex:layer.zIndex})
  479. }
  480. })
  481.  
  482. document.addEventListener('copy', function (event) {
  483. if(canCopy){
  484. var clipboardData = event.clipboardData || window.clipboardData;
  485. var res = clipboardData.getData('text/html');
  486. canCopy = false
  487. var el = $($(res).children()[0])
  488. var elHtml = el.prop('innerHTML')
  489. if($(elHtml).length >1){
  490. elHtml = $($(elHtml)[0]).prop('outerHTML')
  491. elText = $($(elHtml)[0]).text()
  492. }else{
  493. var elText = $($(res).children()[0]).text()
  494. }
  495.  
  496. var resHtml = elHtml.replace('>'+elText+'</','>预览</')
  497.  
  498. if(elText == elHtml){
  499. resHtml = "<span class=\"ql-author-45317226\">预览</span>"
  500. }
  501.  
  502. var cur = store.get(keyPrefix+tempNumber)
  503. setRecordData(tempNumber,cur.name,cur.content,resHtml,cur.hotkey,cur.isDefault)
  504. $('#p_data_all').html(render())
  505. layer.msg('格式录制成功!',{zIndex:layer.zIndex})
  506. }
  507. });
  508.  
  509.  
  510. $(document).keydown(function(event){
  511. Mousetrap.record(function(sequence) {
  512. var keyStr = sequence.join(' ')
  513.  
  514. if(keyStr == 'ctrl+shift+m'){
  515. store.remove('layer_window_top')
  516. store.remove('layer_window_left')
  517. store.remove('layer_window_height')
  518. store.remove('layer_window_width')
  519. layer.msg('重置窗口成功,请刷新页面',{zIndex:layer.zIndex})
  520. }
  521.  
  522. if(isRecord){
  523. isRecord = false
  524. var num = tempNumber
  525. var cur = store.get(keyPrefix+num)
  526. let allData = getRecordData()
  527. let isRepeat = false;
  528. allData.forEach(function (item) {
  529. if(item.number != num && item.hotkey == keyStr){
  530. isRepeat = true
  531. }
  532. })
  533.  
  534. if(isRepeat){
  535. layer.msg('错误!!快捷键已经存在!!! 快捷键:'+keyStr,{zIndex:layer.zIndex})
  536. return false;
  537. }
  538.  
  539. setRecordData(num,cur.name,cur.content,cur.format,keyStr,cur.isDefault)
  540. $('#p_data_all').html(render())
  541. layer.msg('录制成功:'+keyStr,{zIndex:layer.zIndex})
  542. }else{
  543. if(hotKeyList[keyStr] != undefined){
  544. var item = hotKeyList[keyStr]
  545. var selection = window.getSelection() || document.getSelection() || document.selection.createRange();
  546. var selectionStr = selection.toString()
  547. if(item.content != ''){
  548. selectionStr = item.content
  549. }else if(selectionStr == ''){
  550. selectionStr = '&#65279;'
  551. }
  552.  
  553. if(item.format == '预览'){
  554. // var copyStr = selectionStr
  555. layer.msg(item.hotkey+' 还没有录制格式呢!',{zIndex:layer.zIndex})
  556. return false
  557. }else{
  558. var copyStr = item.format.replace('>预览</','>'+selectionStr+'</')
  559. }
  560.  
  561. if (selection.rangeCount > 0) {
  562. var originRange = selection.getRangeAt(0);
  563. }else{
  564. var originRange = false;
  565. }
  566.  
  567. var beforeLast = $('body').children().last()
  568. var text = $(copyStr).appendTo('body')
  569. console.log(text)
  570. if (document.body.createTextRange) {
  571. var range = document.body.createTextRange();
  572. range.moveToElementText(text);
  573. range.select();
  574. } else if (window.getSelection) {
  575. var selection = window.getSelection();
  576. var range = document.createRange();
  577. range.selectNodeContents(text[0]);
  578. selection.removeAllRanges();
  579. selection.addRange(range);
  580. }
  581.  
  582. document.execCommand('Copy','false',null);
  583.  
  584. $(beforeLast).nextAll().remove()
  585.  
  586. selection.removeAllRanges();
  587. if(originRange){
  588. selection.addRange(originRange)
  589. }
  590. isPaste = true
  591. // var tempStr = item.content != '' ? "内容:'"+item.content+"' 已复制" : '格式:'+item.name+'已处理完成'
  592. // layer.msg(tempStr+',使用 Ctrl+V 应用',{zIndex:layer.zIndex})
  593.  
  594. // document.querySelector('.ql-clean.ql-toolbar-widget').click()
  595. if(item.content == ""){
  596. var selectionStr = window.getSelection().toString()
  597. }else{
  598. var strLen = window.getSelection().toString().length
  599. var selectionStr = ""
  600. if(strLen == 0){
  601. strLen = 1
  602. }
  603. for (var i=0;i<strLen;i++){
  604. selectionStr += item.content
  605. }
  606. }
  607. var copyStr = item.format.replace('>预览</','>'+selectionStr+'</')
  608. console.log(copyStr)
  609. if(originRange){
  610. replaceSelection(copyStr)
  611. }
  612. layer.msg(item.name+' 快捷键格式应用成功!',{zIndex:layer.zIndex})
  613.  
  614. //
  615. // if (selectStr.trim() != "") {
  616. //
  617. // }else{
  618. // var tempStr = item.content != '' ? "内容:'"+item.content+"' 已复制" : '格式:'+item.name+'已处理完成'
  619. // layer.msg(tempStr+',使用 Ctrl+V 应用',{zIndex:layer.zIndex})
  620. // }
  621.  
  622. }
  623.  
  624. }
  625. });
  626. });
  627. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址