アプリ版:「スタンプのみでお礼する」機能のリリースについて

下のスクリプトの最後の () はどうして必要なのでしょうか? ないとうまく機能しないので必要なことは間違いないのですが……

javascript:(
function()
{
var newCSS, styles='
* { background: white ! important; color: black !important } ';

if(document.createStyleSheet)
{ document.createStyleSheet("javascript:'"+styles+"'"); }
else
{ newCSS=document.createElement('link');
newCSS.rel='stylesheet';
newCSS.href='data:text/css,'+escape(styles);
document.documentElement.childNodes[0].appendChild(newCSS);
}
})();

A 回答 (1件)

最後の () は無名の functionを呼び出すための () です。


無名の function とは,書かれている冒頭の

javascript:(
function()
{ …

この↑ function です。
この function は,関数を定義しているだけで,実行命令を受けていません。
「このfunctionを,実行しろ。」と呼び出しているのが最後の () です。
HTML に書いた場合は,
『OnClick="function名"』や『A href="javascript: function名">』に当たる部分が,最後の () です。

わかりやすくするために,以下のようにこの function に aaa という名前を付けてみます。

javascript:(function aaa(){var newCSS, styles='* { background: white ! important; color: black !important } '; if(document.createStyleSheet) { document.createStyleSheet("javascript:'"+styles+"'"); } else { newCSS=document.createElement('link'); newCSS.rel='stylesheet'; newCSS.href='data:text/css,'+escape(styles); document.documentElement.childNodes[0].appendChild(newCSS); }});aaa();

このように↑書いても,BookMarkletは動作します。

function名は付けても良いですが,字数を増やすだけです(IE6の制限508文字?)。
だから付けないのが普通です。
またHTML文書内のJavaScriptとの干渉を防ぐ意味もあるかもしれません。

下記参考URLは,他の点でも参考になると思います。
「ブックマークレットを作成する際のポイント」↓

参考URL:http://www.teria.com/~koseki/memo/bookmarklets/t …
    • good
    • 0
この回答へのお礼

大変参考になりました。
のどにささった魚の骨が取れた感じです。

お礼日時:2005/10/07 21:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!