# アメブロの本文中でJavaScriptを動かすハック
_published: 2008/09/02_ 
昨日に引き続き、はてなーの皆さんは、まったくもって興味が無いと思いますが、アメブロの話です。
- [アメブロのアクセス解析が酷すぎる件について - このブログは証明できない。](http://d.hatena.ne.jp/shunsuk/20080901/1220269118)
今日は、悪いネタじゃないと思いますよ。たぶん。。
livedoor Blogの一番魅力的なところは、ブログ本文でJavaScriptを動かせることだと思っています。dankogai氏が404で時々やってますよね。はてなダイアリーでも、JavaScriptが動かせたらと思っている人も多いのではないでしょうか。
アメーバブログ(アメブロ)も、はてなと同じく、本文中にJavaScriptを埋め込むことができません。ポストしようとすると、不正なタグだとかで怒られます。そこで、ハックしてみました。
とりあえず、動いてる様子を。葵ちゃんのブログで。
- [やったー!アメブロでJavaScriptが動いたよー!|女子高生ハッカーを目指すのだ。](http://ameblo.jp/aoi-hacker/entry-10133340011.html)
IE、Firefox、Safariで動作確認しています。
では、やり方です。若干、力技ですが。
アメブロではサイドバーにプラグインを追加することができます。カレンダーやブログパーツなどですね。ここに、フリープラグインというプラグインを追加できます。フリープラグインは、その名の通り自由です。好きなようにHTMLを書くことができます。それだけじゃなく、JavaScriptも書けます。JavaScriptを書ければ、あとはやりたい放題ですね。
フリープラグインに下のコードを貼付けます。
```html
<script type="text/javascript">
(function() {
var codes = document.body.innerHTML.match(/<pre [\w\s:;"=]*class="?eval"?[\w\s:;"=]*>((.|\n)*)<\/pre>/gi);
if (codes == null) return;
for (var i = 0; i < codes.length; i++) {
eval(codes[i].replace(/<\/pre>/i, "").replace(/<pre [\w\s:;"=]*class="?eval"?[\w\s:;"=]*>/i, ""));
}
})();
</script>
```
そうです。本文中に書かれたJavaScriptをevalして実行してしまおうという魂胆です。
本文中に、こんなカンジでコードを埋め込みます。
```html
<pre class="eval">
// JavaScriptのコードを書く
</pre>
```
コードを表示したくなければ。
```html
<pre class="eval" style="display:none">
// JavaScriptのコードを書く
</pre>
```
上の葵ちゃんのエントリには、こんなコードを書いています。
```html
<div style="position:relative">
<div id="move" style="position:absolute"><font size="5" style="color: blue">動く葵</font></div>
</div>
<pre class="eval" style="display:none">
(function() {
var e = document.getElementById('move');
var sp = 4;
var pos = 0;
setInterval(move, 100);
function move() {
pos += sp;
e.style.left = pos + 'px';
if (pos % 200 == 0) sp *= (-1);
}
})();
</pre>
```
preタグの中身がevalされて実行されます。
ということで、アメブロの本文中でJavaScriptを動かすハックでした。ちなみに、フリープラグインにJavaScriptを書けば、ウザイ広告を消したり、Adsenseを自分のものに差し替えたり、ホントにやりたい放題ですね。
はてなダイアリーもサイドバーに対応外のブログパーツを配置できます。
- [はてなダイアリーに(対応外の)ブログパーツを貼る - ぼくはまちちゃん!(Hatena)](http://d.hatena.ne.jp/Hamachiya2/20070814/google_gadgets)
Googleガジェットを使う方法ですね。
さっそく、この方法を使って、eval作戦を試してみました。
でも、スクリプトが実行されない。。
はてなダイアリーの方は、id:Hamachiya2とかid:amachangに何とかしてもらいましょう。