twitter_draft Fork

    @@ -7,6 +7,7 @@ // @author You // @match https://twitter.com/* // @grant none + // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js // ==/UserScript== var result = document.evaluate('id("global-new-tweet-button")', document, null, 7, null); result.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" id="draft" value="下書き">');
    @@ -14,7 +15,7 @@ localStorage.setItem("n_url", location.href); history.pushState(null, null, "/koko_nanimo_naidesuyo"); document.body.innerHTML = ""; - document.body.insertAdjacentHTML("beforeend", "<textarea>戻るボタンなどのブラウザバックで元のページに戻ります</textarea><br><input type='button' value='save'><input type='button' value='load'>"); + document.body.insertAdjacentHTML("beforeend", "<textarea>戻るボタンなどのブラウザバックで元のページに戻ります</textarea><br><input type='button' value='save'><input type='button' value='load'><span class='count'>0</span>"); var result2 = document.evaluate('//input', document, null, 7, null); result2.snapshotItem(0).addEventListener('click', sample, false); result2.snapshotItem(1).addEventListener('click', sample2, false);
    @@ -29,6 +30,10 @@ var draft = localStorage.getItem('draft'); result3.snapshotItem(0).value = draft; } + $('textarea').bind('keydown keyup keypress change', function () { + var thisValueLength = $(this).val().length; + $('.count').html(thisValueLength + "/140"); + }); window.addEventListener('popstate', function (event) { location.href = localStorage.getItem("n_url"); });
  • // ==UserScript==
    // @title        twitter_draft
    // @name         twitter_draft
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://twitter.com/*
    // @grant        none
    // @require      http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
    // ==/UserScript==
    var result = document.evaluate('id("global-new-tweet-button")', document, null, 7, null);
    result.snapshotItem(0).insertAdjacentHTML('afterend', '<input type="button" id="draft" value="下書き">');
    document.getElementById("draft").addEventListener('click', function () {
      localStorage.setItem("n_url", location.href);
      history.pushState(null, null, "/koko_nanimo_naidesuyo");
      document.body.innerHTML = "";
      document.body.insertAdjacentHTML("beforeend", "<textarea>戻るボタンなどのブラウザバックで元のページに戻ります</textarea><br><input type='button' value='save'><input type='button' value='load'><span class='count'>0</span>");
      var result2 = document.evaluate('//input', document, null, 7, null);
      result2.snapshotItem(0).addEventListener('click', sample, false);
      result2.snapshotItem(1).addEventListener('click', sample2, false);
    
      function sample() {
        var result3 = document.evaluate('//textarea', document, null, 7, null);
        localStorage.setItem('draft', result3.snapshotItem(0).value);
      }
    
      function sample2() {
        var result3 = document.evaluate('//textarea', document, null, 7, null);
        var draft = localStorage.getItem('draft');
        result3.snapshotItem(0).value = draft;
      }
      $('textarea').bind('keydown keyup keypress change', function () {
        var thisValueLength = $(this).val().length;
        $('.count').html(thisValueLength + "/140");
      });
      window.addEventListener('popstate', function (event) {
        location.href = localStorage.getItem("n_url");
      });
    });
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。