Bookmarklet Editor Bookmarklet version 2.0

  • /*
     * @title Bookmarklet Editor Bookmarklet version 2.0
     * @description Plain old bookmarklet for editing bookmarklets
     */
    
    location.href = "data:text/html;charset=utf-8,%3C!DOCTYPE%20HTML%3E%3Chtml%20lang=en%3E%0A%3Chead%3E%0A%3Ctitle%3EBEB%20%26mdash;%20Bookmarklet%20Editor%20Bookmarklet%3C/title%3E%0A%3Cstyle%3E%0Ahtml,%20body,%20div,%20p%20%7B%0A%20%20display:%20block;%0A%20%20position:%20static;%0A%20%20margin:%200;%0A%20%20border-width:%200;%0A%20%20padding:%200;%0A%20%20text-indent:%200;%0A%7D%0A%0Abody%20%7B%0A%20%20position:%20absolute;%0A%20%20top:%200;%0A%20%20right:%200;%0A%20%20bottom:%200;%0A%20%20left:%200;%0A%20%20margin:%201em;%0A%7D%0A%0A%23decoded-section%20%7B%0A%20%20position:%20absolute;%0A%20%20top:%200;%0A%20%20right:%200;%0A%20%20bottom:%205em;%0A%20%20left:%200;%0A%7D%0A%0A%23decoded-section%20%3E%20p%20%7B%0A%20%20width:%20100%25;%0A%20%20height:%20100%25;%0A%20%20text-indent:%200;%0A%7D%0A%0A%23decoded-url-text%20%7B%0A%20%20display:%20block;%0A%20%20margin-left:%20auto;%0A%20%20margin-right:%20auto;%0A%20%20width:%20100%25;%0A%20%20height:%20100%25;%0A%20%20-moz-box-sizing:%20border-box;%0A%20%20-webkit-box-sizing:%20border-box;%0A%20%20-ms-box-sizing:%20border-box;%0A%20%20box-sizing:%20border-box;%0A%7D%0A%0A%23encoded-section%20%7B%0A%20%20display:%20block;%0A%20%20position:%20absolute;%0A%20%20right:%200;%0A%20%20bottom:%200;%0A%20%20left:%200;%0A%20%20height:%205em;%0A%7D%0A%0A%23encoded-section%20textarea%20%7B%0A%20%20display:%20inline;%0A%20%20width:%2080%25;%0A%20%20height:%201em;%0A%7D%0A%0A%23encoded-section%20textarea%5Bdata-modified%5D%20%7B%0A%20%20color:%20black;%0A%20%20font-weight:%20bolder;%0A%7D%0A%3C/style%3E%0A%3Cscript%3E%0A%20%20document.isModified%20=%20false;%0A%0A%20%20var%20updateTimer%20=%200;%0A%20%20function%20scheduleToUpdateEncodedURL%20%28%29%20%7B%0A%20%20%20%20if%20%28updateTimer%29%20%7B%0A%20%20%20%20%20%20clearTimeout%20%28updateTimer%29;%0A%20%20%20%20%7D%0A%20%20%20%20updateTimer%20=%20setTimeout%20%28updateEncodedURL,%201000%29;%0A%20%20%7D%20//%20scheduleToUpdateEncodedURL%0A%0A%20%20function%20updateEncodedURL%20%28%29%20%7B%0A%20%20%20%20var%20url%20=%20document.getElementById%20%28%27decoded-url-text%27%29.value;%0A%20%20%20%20if%20%28url.match%20%28/%5Ejavascript:/i%29%29%20%7B%0A%20%20%20%20%20%20url%20=%20%27javascript:%27%20+%20encodeURIComponent%20%28url.substring%20%2811%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%27/g,%20%27%2527%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%5C%28/g,%20%27%2528%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%5C%29/g,%20%27%2529%27%29;%0A%20%20%20%20%7D%20else%20if%20%28url.match%20%28/%5Edata:/i%29%29%20%7B%0A%20%20%20%20%20%20url%20=%20%27data:%27%20+%20encodeURI%20%28url.substring%20%285%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%5C%23/g,%20%27%2523%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%26/g,%20%27%2526%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%27/g,%20%27%2527%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%5C%28/g,%20%27%2528%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%5C%29/g,%20%27%2529%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%20%28/%5C%3F/g,%20%27%253F%27%29;%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20url%20=%20encodeURI%20%28url%29;%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20encoded%20=%20document.getElementById%20%28%27encoded-url-text%27%29;%0A%20%20%20%20encoded.value%20=%20url;%0A%20%20%20%20encoded.removeAttribute%20%28%27data-modified%27,%20%27%27%29;%0A%0A%20%20%20%20var%20link%20=%20document.getElementById%20%28%27encoded-url-link%27%29;%0A%20%20%20%20link.href%20=%20url;%0A%20%20%20%20link.title%20=%20url.length%20+%20%27%20characters%27;%0A%20%20%20%20document.isModified%20=%20true;%0A%20%20%7D%20//%20updateEncodedURL%0A%0A%20%20function%20editEncodedURL%20%28%29%20%7B%0A%20%20%20%20if%20%28document.isModified%29%20%7B%0A%20%20%20%20%20%20if%20%28!confirm%20%28%27The%20code%20is%20modified.%20%20Continue%20anyway%3F%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20return;%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20updateDecodedURL%20%28%29;%0A%20%20%20%20updateEncodedURL%20%28%29;%0A%20%20%20%20document.isModified%20=%20false;%0A%20%20%7D%20//%20editEncodedURL%0A%0A%20%20function%20updateDecodedURL%20%28%29%20%7B%0A%20%20%20%20var%20encoded%20=%20document.getElementById%20%28%27encoded-url-text%27%29;%0A%20%20%20%20document.getElementById%20%28%27decoded-url-text%27%29.value%20=%20decodeURIComponent%20%28encoded.value%29;%0A%20%20%20%20encoded.removeAttribute%20%28%27data-modified%27%29;%0A%20%20%7D%20//%20updateDecodedURL%0A%0A%20%20function%20encodedURLModified%20%28%29%20%7B%0A%20%20%20%20document.getElementById%20%28%27encoded-url-text%27%29.setAttribute%20%28%27data-modified%27,%20%27%27%29;%0A%20%20%7D%20//%20encodedURLModified%0A%3C/script%3E%0A%3C/head%3E%0A%3Cbody%20onbeforeunload=%22if%20%28document.isModified%29%20event.returnValue%20=%20%27Modified%27%22%3E%0A%0A%3Cdiv%20class=section%20id=decoded-section%3E%0A%3Cp%3E%3Ctextarea%20id=decoded-url-text%20onchange=%22%20scheduleToUpdateEncodedURL%20%28%29%20%22%20onkeypress=%22%20scheduleToUpdateEncodedURL%20%28%29%20%22%3Ejavascript:%0A%3C/textarea%3E%0A%3C/div%3E%0A%0A%3Cdiv%20class=section%20id=encoded-section%3E%0A%3Cp%3E%3Ca%20href=%22data:,%22%20id=encoded-url-link%3EURL%3C/a%3E:%20%0A%3Ctextarea%20id=encoded-url-text%20onchange=%22%20%20if%20%28!document.isModified%29%20updateDecodedURL%20%28%29;%20else%20encodedURLModified%20%28%29%20%22%20onkeypress=%22%20encodedURLModified%20%28%29%20%22%3E%3C/textarea%3E%0A%3Cbutton%20type=button%20onclick=%22%20editEncodedURL%20%28%29%20%22%3EEdit%3C/button%3E%0A%0A%3Cp%3E%3Ca%20href=%22http://suika.fam.cx/%257Ewakaba/wiki/sw/n/BEB%22%3EBEB%3C/a%3E%20Version%202.0%20%0A%28%3Ctime%3E2009-01-27%3C/time%3E%29%0A%3C/div%3E%0A%0A%3C!--%0A/*%20*****%20BEGIN%20LICENSE%20BLOCK%20*****%0A%20*%20Copyright%202005-2009%20Wakaba%20%3Cw@suika.fam.cx%3E.%20%20All%20rights%20reserved.%0A%20*%0A%20*%20This%20program%20is%20free%20software;%20you%20can%20redistribute%20it%20and/or%20%0A%20*%20modify%20it%20under%20the%20same%20terms%20as%20Perl%20itself.%0A%20*%0A%20*%20Alternatively,%20the%20contents%20of%20this%20file%20may%20be%20used%20%0A%20*%20under%20the%20following%20terms%20%28the%20%22MPL/GPL/LGPL%22%29,%20%0A%20*%20in%20which%20case%20the%20provisions%20of%20the%20MPL/GPL/LGPL%20are%20applicable%20instead%0A%20*%20of%20those%20above.%20If%20you%20wish%20to%20allow%20use%20of%20your%20version%20of%20this%20file%20only%0A%20*%20under%20the%20terms%20of%20the%20MPL/GPL/LGPL,%20and%20not%20to%20allow%20others%20to%0A%20*%20use%20your%20version%20of%20this%20file%20under%20the%20terms%20of%20the%20Perl,%20indicate%20your%0A%20*%20decision%20by%20deleting%20the%20provisions%20above%20and%20replace%20them%20with%20the%20notice%0A%20*%20and%20other%20provisions%20required%20by%20the%20MPL/GPL/LGPL.%20If%20you%20do%20not%20delete%0A%20*%20the%20provisions%20above,%20a%20recipient%20may%20use%20your%20version%20of%20this%20file%20under%0A%20*%20the%20terms%20of%20any%20one%20of%20the%20Perl%20or%20the%20MPL/GPL/LGPL.%0A%20*%0A%20*%20%22MPL/GPL/LGPL%22:%0A%20*%0A%20*%20Version:%20MPL%201.1/GPL%202.0/LGPL%202.1%0A%20*%0A%20*%20The%20contents%20of%20this%20file%20are%20subject%20to%20the%20Mozilla%20Public%20License%20Version%0A%20*%201.1%20%28the%20%22License%22%29;%20you%20may%20not%20use%20this%20file%20except%20in%20compliance%20with%0A%20*%20the%20License.%20You%20may%20obtain%20a%20copy%20of%20the%20License%20at%0A%20*%20%3Chttp://www.mozilla.org/MPL/%3E%0A%20*%0A%20*%20Software%20distributed%20under%20the%20License%20is%20distributed%20on%20an%20%22AS%20IS%22%20basis,%0A%20*%20WITHOUT%20WARRANTY%20OF%20ANY%20KIND,%20either%20express%20or%20implied.%20See%20the%20License%0A%20*%20for%20the%20specific%20language%20governing%20rights%20and%20limitations%20under%20the%0A%20*%20License.%0A%20*%0A%20*%20The%20Original%20Code%20is%20Bookmarklet%20Editor%20code.%0A%20*%0A%20*%20The%20Initial%20Developer%20of%20the%20Original%20Code%20is%20Wakaba.%0A%20*%20Portions%20created%20by%20the%20Initial%20Developer%20are%20Copyright%20%28C%29%202005%0A%20*%20the%20Initial%20Developer.%20All%20Rights%20Reserved.%0A%20*%0A%20*%20Contributor%28s%29:%0A%20*%20%20%20Wakaba%20%3Cw@suika.fam.cx%3E%0A%20*%0A%20*%20Alternatively,%20the%20contents%20of%20this%20file%20may%20be%20used%20under%20the%20terms%20of%0A%20*%20either%20the%20GNU%20General%20Public%20License%20Version%202%20or%20later%20%28the%20%22GPL%22%29,%20or%0A%20*%20the%20GNU%20Lesser%20General%20Public%20License%20Version%202.1%20or%20later%20%28the%20%22LGPL%22%29,%0A%20*%20in%20which%20case%20the%20provisions%20of%20the%20GPL%20or%20the%20LGPL%20are%20applicable%20instead%0A%20*%20of%20those%20above.%20If%20you%20wish%20to%20allow%20use%20of%20your%20version%20of%20this%20file%20only%0A%20*%20under%20the%20terms%20of%20either%20the%20GPL%20or%20the%20LGPL,%20and%20not%20to%20allow%20others%20to%0A%20*%20use%20your%20version%20of%20this%20file%20under%20the%20terms%20of%20the%20MPL,%20indicate%20your%0A%20*%20decision%20by%20deleting%20the%20provisions%20above%20and%20replace%20them%20with%20the%20notice%0A%20*%20and%20other%20provisions%20required%20by%20the%20LGPL%20or%20the%20GPL.%20If%20you%20do%20not%20delete%0A%20*%20the%20provisions%20above,%20a%20recipient%20may%20use%20your%20version%20of%20this%20file%20under%0A%20*%20the%20terms%20of%20any%20one%20of%20the%20MPL,%20the%20GPL%20or%20the%20LGPL.%0A%20*%0A%20*%20*****%20END%20LICENSE%20BLOCK%20*****%20*/%0A--%3E%0A";
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2010/05/16 13:53:42 - 2010-05-16