セキュリティレベルに依存して実行できないBookmarkletを実行する。
javascript:やvbscript:プロトコルは、表示中のWebページのセキュリティゾーンのセキュリティレベルに依存するため、一般に実行できません。
ブックマークレットのインターネットショートカットを実行するには、次のVBSファイルをインターネットショートカットに関連付けるか、SendToに入れて、インターネットショートカットを右クリックして実行します。
execUrlScript.VBS
CreateObject("Shell.Application").Windows().Item().Document.parentWindow.setTimeout CreateObject("WScript.Shell").CreateShortCut(WScript.Arguments(0)).TargetPath
また、アドレスバーにjavascript:やvbscript:プロトコルを直接入力する代わりに、次のVBSファイルをお気に入りかリンクに入れて、こちらのInputBoxに入力します。
execScript.VBS
Set ie=CreateObject("Shell.Application").Windows().Item()
Do
script=InputBox("Enter script...",WScript.ScriptName,script,,0)
If script="" Then Exit Do
ie.Document.parentWindow.setTimeout script
Loop
ここで、window.execScript()でなく、window.setTimeout()を使用するところが味噌です。前者は表示中のWebページのセキュリティゾーンのセキュリティレベルに依存します。後者は依存しません。
※ IE6まで。
« VBAで非同期割込処理。n秒後に自動的に閉じるMsgBox() | トップページ | スクリプトと言語を一緒に指定する。 »