Home > プログラミング
< 古い10件 |
プログラミング Archive (Page 1)
はてなダイアリー過去記事全文連結スクリプト(要Firebug)
記事一覧ページで過去の記事の見出しをその場で検索できるようになりました - はてなダイアリー日記
kga_ 2008年03月28日 hatena mala
http://d.hatena.ne.jp/#{ID}/archive/plaintext で日付け、Permalink、タイトルがとれる
ネタ元。
var xhr = function(uri, callback){
var xmlhttp = new XMLHttpRequest() || new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp.open("GET", uri, true);
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
callback(xmlhttp.responseText);
}
};
xmlhttp.send(null);
};
var baseuri = location.href.slice(0, -18);
var lines = (document.body.textContent || document.body.innerText).split("\n");
var w = window.open();
w.document.open();
w.document.write('<html><head><title>' + baseuri + '/</title></head><link rel="stylesheet" href="http://d.hatena.ne.jp/css/base.css" type="text/css" /><link rel="stylesheet" href="http://d.hatena.ne.jp/theme/hatena/hatena.css" type="text/css" /><style type="text/css">p.commentform{display:none;}</style><body>');
var i = 0, l = lines.length;
(function(){
var path = lines[i].split(",")[1];
if (path) {
xhr(baseuri + path, function(res){
w.document.write(res.match(/<div id="days">([\s\S]*?)<div class="calendar" id="pager-bottom">/)[1]);
});
}
if (++i < l) {
setTimeout(arguments.callee, 5000);
} else {
w.document.write('</body></html>');
w.document.close();
}
})();
使い方。
- Firefoxを立ち上げてFirebugを有効にする
- http://d.hatena.ne.jp/#{ID}/archive/plaintextを開く
- Firebugのコンソールから上を実行する
- 別ウィンドウに全過去ログが書き出される*1
- ページを保存してあとで見る
あまり行儀の良いスクリプトじゃないけど、過去記事をまとめて保存しとくと場合によっては役に立つかと思って作りました。
- *1: 記事1000件当たり約1時間23分かかる
- Category: プログラミング
- Tag: JavaScript
「opmlmaker」を作った
改行区切りのフィードURIのリストをopmlに整形するJS。
livedoor Readerにフィードをまとめて登録するために作ったもの。
生成された文字列をファイルにUTF-8で保存して、設定画面→インポート→アップロードして使います(LDRの場合)。
LDRではグループ名を既存のフォルダ名にすると、そこに登録してくれるみたいです。
- Category: プログラミング
- Tag: JavaScript, Toys
「レンタルマギカ」の社長命令をなでしこで書いた
あの社長命令って何か手続き型言語っぽいよね、と思ったので。
■アストラル社員とは
・口上
・射出(方向に道具を)~"{名前}「{口上}」"を言う。
・歌う~"{名前}「ついてる~♪」"と言う。
■ゲーティア首領とは
・登場~"{名前}「これは一体どういうことですの、いつき?」"と言う。
・召喚(魔神を)~"{名前}「来たれ{魔神の名前}!{魔神の説明}!」"と言う。
・歌う~"{名前}「ついてる~♪」"と言う。
■魔神とは
・説明
■三輪先生とは
・一言~"三輪先生「まずは水着審査」"と言う。
穂波とはアストラル社員
穂波の口上は「我が上にありしは月の女神!すなわち月光と宿り木の加護をもって北の呪いを阻まん!」
猫屋敷さんとはアストラル社員
#猫屋敷さんの口上がわからない
みかんちゃんとはアストラル社員
#みかんちゃんの口上がわからない
黒羽さんとはアストラル社員
#黒羽さんの口上がわからない
アディリシアさんとはゲーティア首領
エリゴールとは魔神
エリゴールの説明は「六十の軍団を治める、堅固なる騎士」
#いつき「社長命令だ!」
穂波は「右斜め45度の方向」に宿り木を射出
猫屋敷さん#のアクションがわからない
みかんちゃん#のアクションがわからない
黒羽さん#のアクションがわからない
アディリシアさんが登場
エリゴールをアディリシアさんが召喚
穂波が歌う
猫屋敷さんが歌う
みかんちゃんが歌う
黒羽さんが歌う
アディリシアさんが歌う
三輪先生が一言
レンタルマギカのことを何も知らないことを思い知らされました。
変数名に「の」を入れられないのがちょっとだけ残念。
かわいいかわいいアディの項目だけ他の3倍くらいあって噴いた。
血を流し込まれたい。
JavaScriptで文字列内変数展開
String.prototype.fill = function(hash){
return this.replace(/\${([A-Za-z_]\w*)}/g, function($0, $1){
return (typeof(hash[$1]) != "undefined") ? hash[$1] : $0;
});
};
var uri = "http://www.google.co.jp/";
'<a href="${href}"><img src="${src}" alt="${alt}" title="${alt}" /></a>'.fill({
href: "http://b.hatena.ne.jp/entry/" + uri,
src: "http://b.hatena.ne.jp/entry/image/" + uri,
alt: "「" + uri + "」のはてなブックマーク数"
});
// <a href="http://b.hatena.ne.jp/entry/http://www.google.co.jp/"><img src="http://b.hatena.ne.jp/entry/image/http://www.google.co.jp/" alt="「http://www.google.co.jp/」のはてなブックマーク数" title="「http://www.google.co.jp/」のはてなブックマーク数" /></a>
使ってみたら結構便利だったのでメモ。
\$を#にすればRubyっぽくなります。
これとXMLHttpRequestを合わせればテンプレートシステムが作れそう、かも。
■ 追記
激しく既出だった。
最速インターフェース研究会 :: Safariでreplace callback のエミュレーション
404 Blog Not Found:javascript - HereDocよりInterpolation
- Category: プログラミング
- Tag: JavaScript, Tips
JavaScriptで配列の最後の要素を取得する方法とArray.reverse()について
今まで配列の最後の要素を取得するのに
var NankaNagaiHensumei = [0,1,2,3,4];
var lastValue = NankaNagaiHensumei[NankaNagaiHensumei.length-1];
とか書いていたのだけど、今
var lastValue = NankaNagaiHensumei.reverse()[0];
と書けることを知った。元の配列が破壊されてしまうのでこれはダメ。
Array.reverse()なんてあったのか。
JavaScript 1.1の機能らしく、手元のIE6、Firefox2、Opera9すべてで動作した。
もっとも、コードが見やすくなる分計算量が増えてしまうので
Array.prototype.last = function(){
return this[this.length-1];
};
とか用意したほうがいろんな面で良さそうではある。
他には
var lastValue = NankaNagaiHensumei.slice(-1)[0];
とかが考えられる……というか、reverseよりはこっちのがいくらかマシかも。
■ 追記
よくよく調べてみたらArray.reverse()はArray.sort()と同じく破壊的な挙動を示す。
これは使えない。
降順にソートするなら比較関数でそうなるように書くから、そういう用途でも使えない。
あんまり使うことはなさそうだ。
- Category: プログラミング
- Tag: JavaScript, Tips
Exciteサーチストリームをニコニコ動画風に表示するAIRアプリケーション「ExciteNico」を作った

■ 説明
- Exciteサーチストリーム(フィルターなし)をニコニコ動画風に表示
- 使う際はサーチストリーム(フィルターなし) ご利用上の注意 - エキサイト サーチストリームに同意してください
- 非公開APIを10秒間隔で叩いてるので、かなりアレ
- 問題あったら消します
- 本家は上から順に埋まるようになっているのだけど、それだとつまらないのでランダムに
- 重なり判定は面倒なのでパス
- Adobe AIRのバージョンは1.0
■ ダウンロード
■ 使用上の注意
Adobe - Adobe AIR Download Center
インストールにはAdobe AIR 1.0ランタイムが必要です。
ランタイムをインストールした後、airファイルをダブルクリックでインストールできます。
アンインストールは「アプリケーションの追加と削除」とかその辺の「ExciteNico」から。
■ 追記
1.0正式版が出てたので差し替えました。
Amazonの商品ページのURLを短くするブックマークレットについて
hecomi.com: Amazon Bookmarklet 対3種
javascript:var assoc='xxx-22';var t=document.title;var linkStr=t.substring(t.indexOf(':')+1,t.indexOf(':'));var u=document.location.href;var ai=u.indexOf('ASIN');if(ai>-1){var asin=u.substring(ai+5,ai+15);}var ai=u.indexOf('/dp/');if(ai>-1){var asin=u.substring(ai+4,ai+14);}var ai=u.indexOf('/product/');if(ai>-1){var asin=u.substring(ai+9,ai+19);}var url='http://www.amazon.co.jp/exec/obidos/ASIN/'+asin+'/'+assoc;var link='<a href="'+url+'">'+linkStr+'</a>';var x=prompt('',link);
javascript:void(function(){var u=document.location.href;var ai=u.indexOf('ASIN');if(ai>-1){var asin=u.substring(ai+5,ai+15);}var ai=u.indexOf('/dp/');if(ai>-1){var asin=u.substring(ai+4,ai+14);}var ai=u.indexOf('/product/');if(ai>-1){var asin=u.substring(ai+9,ai+19);}clipboardData.setData('text','http://amazon.jp/dp/'+asin);})();
最短コード
javascript:void(prompt("",location.href.replace(/.*(\/[\dA-Z]{10})(\/.*|$)/,"http://amazon.jp/dp$1")));
はてなの商品紹介ページでも使えます。
■ 追記
KoshianX 2008/02/23 00:29
var asin=document.getElementById(’ASIN’).value;
ASINこれで取れますよ。
こっちのほうが短いな。
最短にこだわる必要もなくなったので、私の方の正規表現も誤検出がないようにちょっと修正。
- Category: プログラミング
- Tag: JavaScript, Web
「TaskLeaflet」を作った
どうでもいい話
2008-02-20 - きしだのはてな - JavaScriptが、プログラムの初心者が勉強するのに適さない理由
404 Blog Not Found:私がJavaScriptを初心者用の言語として選んだわけ
■ 入門書がない
読めばいいよ。
■ HTML/DOMの知識が必須
読めばいいよ。
■ ブラウザ間の互換性が不十分
使えばいいよ。
■ 実行環境がない
Firebug - Web Development Evolved
これのコンソールに打ち込めばいいよ。
■ JavaScriptの良いところ
初心者から上級者まで、あらゆる人の手によるコードがすべて公開されていること。
難読化とかはあるけど、基本的にはあらゆるスクリプトのバックグラウンドが見れる。
ブラックボックス化したcgiとかがない。
初心者向けであるとすれば、そういうところが大きいんじゃないかと思う。
あとは、何の制約もなく動くコードを提示できることとか。
サーバ借りなくてもいいし、レンタルブログでも書ける。
■ JavaScriptの悪いところ
使い回しが効かない。
- Category: プログラミング
- Tag: JavaScript, Web
< 古い10件 |
Home > プログラミング
- Feeds
- Search This Blog
- Counter
-
-
since 2008.01.11
-