はてな俳句風味
by
wakabatan
2011-04-01 [2011/04/01 01:02:37]
はてなハイクをちょっとだけはてな俳句風にします。
-
/*
* @title はてな俳句風味
* @description はてなハイクをちょっとだけはてな俳句風にします。
* @license MIT License
*/
var style = document.createElement('div');
style.innerHTML = '<style>.hatena-star-add-button-image { background-image: url("/images/add-sakura.gif"); } .hatena-star-star-image { background-image: url("/images/sakura.gif"); } img.hatena-star-add-button, img.hatena-star-star { vertical-align: middle !important; } .hatena-star-inner-count { color: #FB7B9C; font-size: 80%; margin: 0 2px; } form.entry-form input.haiku-word { background: url("/images/haiku-word.gif") no-repeat scroll 3px 50% transparent; padding-left: 24px; } form.entry-form input.entry-body-1, form.entry-form input.entry-body-3 { background: url("/images/haiku-5.gif") no-repeat scroll 3px 50% transparent; padding-left: 24px; } form.entry-form input.entry-body-2 { background: url("/images/haiku-7.gif") no-repeat scroll 3px 50% transparent; padding-left: 24px; } input.entry-body-1, input.entry-body-3 { width: 10em; } input.entry-body-2 { width: 15em; } body, div.streamheader h1 { font-family:"MS P 明朝", serif }</style>';
document.body.appendChild(style);
var stars = Ten.DOM.getElementsByClassName('hatena-star-star');
for (var i = 0; i < stars.length; i++) {
stars[i].src = '/images/sakura.gif';
}
Hatena.Star.Star.ColorPallet.yellow.ImgSrc = '/images/sakura.gif';
var stars = Ten.DOM.getElementsByClassName('hatena-star-add-button');
for (var i = 0; i < stars.length; i++) {
stars[i].src = '/images/add-sakura.gif';
}
Hatena.Star.AddButton.ImgSrc = '/images/add-sakura.gif';
var script = document.createElement('script');
script.src = 'http://h.hatena.ne.jp/js/Hatena/Haiku/HaikuChecker.js';
document.body.appendChild(script);
var entryBody = Ten.DOM.getElementsByClassName('entry-body')[0];
entryBody.style.display = 'none';
var div = document.createElement('div');
div.innerHTML = '<input type="text" class="text haiku-body entry-body-1" name="body" /><br /><input type="text" class="text haiku-body entry-body-2" name="body" /><br /><input type="text" class="text haiku-body entry-body-3" name="body" />';
entryBody.parentNode.insertBefore(div, entryBody);
var form = entryBody.form;
var submit = Ten.DOM.getElementsByClassName('submit', form)[0];
var button = document.createElement('input');
button.className = submit.className;
button.value = '投句!';
button.type = 'button';
button.onclick = function () {
if (Hatena.Haiku.HaikuChecker.checkForm({form: form})) {
var inputs = Ten.DOM.getElementsByTagAndClassName('input', 'haiku-body', form);
if (inputs.length == 3) {
entryBody.value = inputs[0].value + "\n" + inputs[1].value + "\n" + inputs[2].value;
Ten.DOM.removeClassName(entryBody, 'ten-placeholder');
inputs[0].value = '';
inputs[1].value = '';
inputs[2].value = '';
}
submit.click();
}
};
submit.style.display = 'none';
submit.parentNode.insertBefore(button, submit);
void(0);
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。