■RSS■
■CALENDAR■
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   
<<前月 2010年09月 次月>>
■NEW ENTRIES■
■CATEGORIES■
■コミュニケーション■
■ARCHIVES■
■ECO■
■POWERED BY■
■COUNTER■



■PROFILE■
す~(Suzuki)
適当なプログラムばっかりしか作れない若輩プログラマです。
りっぱなSE目指して色々とお勉強中

エントリの内容は個人的に収集、実験した結果を元にしております。
内容の正確性などは一切保証されませんので、予めご了承くださいm<__>m
また、もしどなたかの権利を侵害してしまっている恐れがある場合などはご連絡お願いします。
■LOGO■
ORACLE MASTER Bronze Oracle Database 10g
■OTHER■
  • 処理時間 0.475465秒
ブックマークレットで変数にvarをつけてもグローバルに
まず、ちょっとおさらい。
「var」をつけて変数を宣言するとコードブロック内ではローカル変数になるはずなんですよ。

では本題に。
ブックマークレットで普通にvarを使って変数を宣言してしまうとグローバルな変数になってしまうようです。
ってことは、既存スクリプトの影響を与えることになるかもですよね。でも、逆に既存スクリプトの動きを変えれるかも!
コードブロックの中に入ってる
  1. javascript:{var%20testValue=10;}

って感じにコードブロックの中にしてるはずでも
コードブロック外から参照可能
  1. javascript:alert(testValue);

とかすると普通に参照できちゃいます。

とはいうものの、影響を与えると困るってことの方が多いよね汗
ちゃんと(?)回避策ありますよ!無名関数を使うことで回避可能です。

さっきのコードを無名関数の中に入れてやると
無名関数化
  1. javascript:(function(){var%20testValue=10;})();

こんな感じになります。これならグローバルにはならないので安心にかっ

ところがここでまたひとつ問題が発生!
ブックマークレットに使える文字数って制限厳しいんですよね。。。
> IEのブックマークレットに使える最大文字数
IEだと500文字くらいまでしか使えないはうー
Firefoxだと2000文字くらいまでいけるのになぁ。
さすがに500文字はちょっと少なすぎです。

なんかIE7になって2000文字いけるようになったみたいチョキ
| http://www3.to/su-house/index.php?e=3 |
| プログラミング::ブラウザ:制約事項 | 01:59 AM | comments (0) | trackback (0) |

PAGE TOP ↑