Hatena::Groupbugrammer

蟲!虫!蟲!

Esehara Profile Site (by Heroku) / Github / bookable.jp (My Service)
過去の記事一覧はこちら

なにかあったら「えせはら あっと Gmail」まで送って頂ければ幸いです。
株式会社マリーチでは、Pythonやdjango、また自然言語処理を使ったお仕事を探しています

 | 

2011-09-19

[][]他人のサイトで外部ファイルのJavascriptを読み込むブックマークレットの作り方 00:46

 例えば、jQueryを外から呼び出すサイトでは次のような操作を行っている。元ネタはno title

var s=document.createElement('script');
s.setAttribute('src','http://jquery.com/src/jquery-latest.js');
document.getElementsByTagName('body')[0].appendChild(s);

 基本的にはdocument.createElementでscriptタグを挿入し、srcにそれを埋め込めばいい。参考までに、タグ的にはこういう感じのが挿入されるはず。

<script type="text/javascript" src="http://jquery.com/src/jquery-latest.js"></script>

 上記のを拡張したのがここにある -> いつでも jQuery を読み込めるブックマークレット jQuerify | バシャログ。。メッセージが表示されるようになっている。

 さて、他人のサイトでのjavascriptの呼び出し方はわかったが、では複数のjavascriptを一気に呼び出す方法はないのか?と言われれば、Katamari Hackブックマークレットを見ると、かなりスッキリした作りとなっている。以下は改行挿入版。

javascript:
    var i,s,ss = ['http://kathack.com/js/kh.js','http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js'];
    for(i=0;i!=ss.length;i++){
        s=document.createElement('script');
        s.src=ss[i];document.body.appendChild(s);
    }
    void(0);

 実際にjavasciptのコンソールを叩いてみるとわかるけど、一行目の"var"による変数宣言のあとに代入される配列は、最後のssにしか適応されない。なので、宣言と任意の変数初期化することが簡単にできる。あとは配列をforでまわしてやればいい。

 ここからは蛇足になるが、例えば次のように変数宣言するとどうなるか。

 var i,s,ss = ("hoge1","hoge2");

 すると見事に ss = "hoge2"だけが渡される。例えばカッコ内の要素を増やしてみる。

 var i,s,ss = ("hoge1","hoge2","hoge3");

 すると見事に、ss = "hoge3"だけが渡される。どうやら'("hoge","hoge2")'みたいにすると、最後の値だけを取り出すような仕組みになっているよう。とりあえずそういうものだと理解しておきます。

YoungyYoungy2011/10/28 04:59I could watch Scnhdlier's List and still be happy after reading this.

jmlraujmlrau2011/10/30 01:22HyDseB , [url=http://sensenowmxui.com/]sensenowmxui[/url], [link=http://ktradxlcnvta.com/]ktradxlcnvta[/link], http://ewuommsogotq.com/

ulgfmlgyqtulgfmlgyqt2011/11/04 03:35Lu1rPp <a href="http://qyfmcxuzqcvk.com/">qyfmcxuzqcvk</a>

ajifeaowiajifeaowi2019/07/06 05:08http://mewkid.net/buy-amoxicillin/ - Buy Amoxicillin <a href="http://mewkid.net/buy-amoxicillin/">Buy Amoxicillin</a> olr.hdvj.bugrammer.g.hatena.ne.jp.fbn.kd http://mewkid.net/buy-amoxicillin/

icuqojafaficuqojafaf2019/07/06 05:31http://mewkid.net/buy-amoxicillin/ - Buy Amoxicillin <a href="http://mewkid.net/buy-amoxicillin/">Amoxicillin 500 Mg</a> ylx.ewtd.bugrammer.g.hatena.ne.jp.kig.vx http://mewkid.net/buy-amoxicillin/

 |