| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | 
							- /**
 
-  * FeHelper 代码美化工具
 
-  */
 
- new Vue({
 
-     el: '#pageContainer',
 
-     data: {
 
-         selectedType: 'Javascript',
 
-         sourceContent: '',
 
-         resultContent: '',
 
-         showCopyBtn: false
 
-     },
 
-     mounted: function () {
 
-         // 在tab创建或者更新时候,监听事件,看看是否有参数传递过来
 
-         if (location.protocol === 'chrome-extension:') {
 
-             chrome.runtime.onMessage.addListener((request, sender, callback) => {
 
-                 if (request.type === 'TAB_CREATED_OR_UPDATED' && request.content && request.event === location.pathname.split('/')[1]) {
 
-                     this.sourceContent = request.content;
 
-                     this.format();
 
-                 }
 
-                 callback && callback();
 
-                 return true;
 
-             });
 
-         }
 
-         //输入框聚焦
 
-         this.$refs.codeSource.focus();
 
-     },
 
-     methods: {
 
-         format: function () {
 
-             if (!this.sourceContent.trim()) {
 
-                 return alert('内容为空,不需要美化处理!');
 
-             }else{
 
-                 this.toast('格式化进行中...');
 
-             }
 
-             let beauty = (result) => {
 
-                 result = result.replace(/>/g, '>').replace(/</g, '<');
 
-                 result = '<pre class="language-' + this.selectedType.toLowerCase() + ' line-numbers"><code>' + result + '</code></pre>';
 
-                 this.resultContent = result;
 
-                 // 代码高亮
 
-                 this.$nextTick(() => {
 
-                     Prism.highlightAll();
 
-                     this.showCopyBtn = true;
 
-                     this.toast('格式化完成!');
 
-                 });
 
-             };
 
-             switch (this.selectedType) {
 
-                 case 'Javascript':
 
-                     let opts = {
 
-                         brace_style: "collapse",
 
-                         break_chained_methods: false,
 
-                         indent_char: " ",
 
-                         indent_scripts: "keep",
 
-                         indent_size: "4",
 
-                         keep_array_indentation: true,
 
-                         preserve_newlines: true,
 
-                         space_after_anon_function: true,
 
-                         space_before_conditional: true,
 
-                         unescape_strings: false,
 
-                         wrap_line_length: "120",
 
-                         "max_preserve_newlines": "5",
 
-                         "jslint_happy": false,
 
-                         "end_with_newline": false,
 
-                         "indent_inner_html": false,
 
-                         "comma_first": false,
 
-                         "e4x": false
 
-                     };
 
-                     beauty(js_beautify(this.sourceContent, opts));
 
-                     break;
 
-                 case 'CSS':
 
-                     css_beautify(this.sourceContent, {}, result => beauty(result));
 
-                     break;
 
-                 case 'HTML':
 
-                     beauty(html_beautify(this.sourceContent,{indent_size:15}));
 
-                     break;
 
-                 case 'SQL':
 
-                     beauty(vkbeautify.sql(this.sourceContent, 4));
 
-                     break;
 
-                 default:
 
-                     beauty(vkbeautify.xml(this.sourceContent));
 
-             }
 
-         },
 
-         copy: function () {
 
-             let _copyToClipboard = function (text) {
 
-                 let input = document.createElement('textarea');
 
-                 input.style.position = 'fixed';
 
-                 input.style.opacity = 0;
 
-                 input.value = text;
 
-                 document.body.appendChild(input);
 
-                 input.select();
 
-                 document.execCommand('Copy');
 
-                 document.body.removeChild(input);
 
-                 alert('复制成功,随处粘贴可用!')
 
-             };
 
-             let txt = this.$refs.jfContentBox.textContent;
 
-             _copyToClipboard(txt);
 
-         },
 
-         /**
 
-          * 自动消失的Alert弹窗
 
-          * @param content
 
-          */
 
-         toast (content) {
 
-             window.clearTimeout(window.feHelperAlertMsgTid);
 
-             let elAlertMsg = document.querySelector("#fehelper_alertmsg");
 
-             if (!elAlertMsg) {
 
-                 let elWrapper = document.createElement('div');
 
-                 elWrapper.innerHTML = '<div id="fehelper_alertmsg" style="position:fixed;bottom:5px;left:5px;z-index:1000000">' +
 
-                     '<p style="background:#000;display:inline-block;color:#fff;text-align:center;' +
 
-                     'padding:10px 10px;margin:0 auto;font-size:14px;border-radius:4px;">' + content + '</p></div>';
 
-                 elAlertMsg = elWrapper.childNodes[0];
 
-                 document.body.appendChild(elAlertMsg);
 
-             } else {
 
-                 elAlertMsg.querySelector('p').innerHTML = content;
 
-                 elAlertMsg.style.display = 'block';
 
-             }
 
-             window.feHelperAlertMsgTid = window.setTimeout(function () {
 
-                 elAlertMsg.style.display = 'none';
 
-             }, 3000);
 
-         }
 
-     }
 
- });
 
 
  |