- ベストアンサー
ブックマークレットの背景文字色変更
- ブックマークレットの最後の () はなぜ必要なのでしょうか?
- 最後の () がないと機能しないため、必要です。
- スクリプトの挙動に関わる重要な要素です。
- みんなの回答 (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は,他の点でも参考になると思います。 「ブックマークレットを作成する際のポイント」↓
お礼
大変参考になりました。 のどにささった魚の骨が取れた感じです。