您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Fill in the filename automatically When pasting a Greasemonkey script.
- // ==UserScript==
- // @name gist fill in fileName automatically
- // @namespace http://efcl.info/
- // @description Fill in the filename automatically When pasting a Greasemonkey script.
- // @include http://gist.github.com/
- // @include https://gist.github.com/
- // @version 0.0.1.20140518104258
- // ==/UserScript==
- /* GRATITUDE
- ペーストされたテキストを置き換えるスクリプト
- http://gist.github.com/338606
- */
- var fileExtension = ".user.js";
- var addAutoEvent = function(fileID) {
- var editArea = document.getElementsByName("file_contents[gistfile" + fileID + "]")[0];
- var editFileName = document.getElementsByName("file_name[gistfile" + fileID + "]")[0];
- var editDescription = document.getElementsByName("description")[0];
- editArea.addEventListener("paste", function(e) {
- // この瞬間はまだtargetのvalueが空である。
- var obj = e.target;
- obj.addEventListener('input', function(evt) {
- // クリップボードの内容がinputされた
- evt.currentTarget.removeEventListener(evt.type, arguments.callee, false);
- var pasteValue = obj.value;
- // name
- var atName = pasteValue.match(/@name\s+([\w\s]+)/i);
- atName = atName && atName[1];
- // description
- var atDesc = pasteValue.match(/@description\s+(.*)/i);
- atDesc = atDesc && atDesc[1];
- if (atName && !editFileName.value) {
- atName = atName.replace(/\s+$/, "");
- // m = m.replace(" " , "_" , "g");// 第3引数 繰り返し
- editFileName.value = atName + fileExtension;
- // console.log(m + fileExtension);
- if(atDesc){
- editDescription.value = atDesc;
- }
- editFileName.focus();
- }
- }, false);
- }, false);
- };
- // 追加されたテキストエリアにもイベントをつける
- var addButton = document.getElementById("add-gist");
- addButton.addEventListener("click", function() {
- document.getElementById("files").addEventListener("DOMNodeInserted", function(e) {
- // テキストエリアが追加された
- e.currentTarget.removeEventListener(e.type, arguments.callee, false);
- var editAreaLength = document.getElementsByClassName("file").length;
- addAutoEvent(editAreaLength);
- }, false);
- }, false);
- // 最初から表示されているテキストエリアにイベントをつける
- addAutoEvent(1);