/*
================================================================================
Name : 任意のコードを実行するBookmarklet Ver1.1.1
In : [none]
Out : [none]
Note : "window.opener"を使用し親ウィンドウ上でスクリプトを実行させる事ができます
--------------------------------------------------------------------------------
Version : Ver1.0.0 | 2004/12/10 | 新規作成
: Ver1.1.0 | 2005/03/31 | textareaに wrap="off"を追加
: Ver1.1.1 | 2006/12/19 | Operaでレイアウトが崩れる不具合を修正
: | | LicenseをNew BSD licenseに変更
--------------------------------------------------------------------------------
License : New BSD license
URL : www.kanasansoft.com
================================================================================
*/
(
function(){
var s=window.open();
with(s.document){
open();
write("<html><head><title>run!</title><style><!--body{margin:0px;padding:0px;}textarea{width:100%;height:45%;font-size:12px;font-family:monospace;}--></style></head><body><input type=\"button\" value=\"run\" onclick=\"eval(document.getElementById(\"code\").value)\"><br><textarea id=\"code\" wrap=\"off\"></textarea><textarea id=\"out\" wrap=\"off\" readonly></textarea></body></html>");
close()
}
}
)
()
================================================================================
Name : 任意のコードを実行するBookmarklet Ver1.1.1
In : [none]
Out : [none]
Note : "window.opener"を使用し親ウィンドウ上でスクリプトを実行させる事ができます
--------------------------------------------------------------------------------
Version : Ver1.0.0 | 2004/12/10 | 新規作成
: Ver1.1.0 | 2005/03/31 | textareaに wrap="off"を追加
: Ver1.1.1 | 2006/12/19 | Operaでレイアウトが崩れる不具合を修正
: | | LicenseをNew BSD licenseに変更
--------------------------------------------------------------------------------
License : New BSD license
URL : www.kanasansoft.com
================================================================================
*/
(
function(){
var s=window.open();
with(s.document){
open();
write("<html><head><title>run!</title><style><!--body{margin:0px;padding:0px;}textarea{width:100%;height:45%;font-size:12px;font-family:monospace;}--></style></head><body><input type=\"button\" value=\"run\" onclick=\"eval(document.getElementById(\"code\").value)\"><br><textarea id=\"code\" wrap=\"off\"></textarea><textarea id=\"out\" wrap=\"off\" readonly></textarea></body></html>");
close()
}
}
)
()
自作のBookmarkletで一番の使用頻度、開発やデバッグに重宝している。実行すると別ウィンドウが開き、「run」ボタンとテキストエリア2つが表示される。上のテキストエリアがJavaScriptの入力欄、下のテキストエリアが出力欄となっている。例えば、
document.getElementById("o").value=window.opener.document.getElementsByTagName("div").length;
と入力し、「run」ボタンを押すと、親ウィンドウ内のdivタグ数が表示される。また、親ウィンドウ側に
var stringbuf="abc";
と(Globalで)宣言されていた場合、
document.getElementById("o").value=window.opener.stringbuf;
で、参照できる。更に、
window.opener.stringbuf="def";
で書き変えることさえできる。同様な機能は、FirefoxのDOM Inspectorを利用することで可能である。しかし、このBookmarkletはIE等他のブラウザでも利用できる。そして、JavaScriptで処理ができるためループ等で一括して処理することさえできる。Functionオブジェクトの書き換えも可能だ。Webアプリケーション開発者、特にテキストエディタで開発している人や、デバッグのためにalertを多用している人にはおすすめだと思う。