▼ 2010/01/31 : 更新しました Install ▼ Greasemonkey のインストールページ Greasemonkey :: Add-ons for Firefox 以前からブックマークレットとして作ってあったものを移植しました。 twilog で Greasemonkey というのを知って、Firefox の拡張を使いやすくしたもの だと言う事が解り、早速、ブックマークレットで作ってもあまり需要のなさそうな Seesaa の記事用の保存ボタンをテキストエリアの側に追加するというのを作って みました。 マニュアル読んでみると、Firefox 拡張を作った時に知った XPCNativeWrapper というのが出てきましたが、これは、行き過ぎたアクセスを防ぐ為に参照されているもので、 通常参照されている現在ブラウザが表示している window オブジェクトの実体のはずです ▼参照したオブジェクトを表示すると以下のようになります [object XPCNativeWrapper [object HTMLTextAreaElement]] それに反して、unsafeWindow は、フルアクセスの為に用意されているようです。確かに、 XPCNativeWrapper だと、ここぞというときに面倒な事になる場合がありますが、通常 少し画面をいじる程度なら必要ありません。 以下は、最初に作ったバージョンで、送信用のボタン(type=submit)を追加しています。 とりあえずこれだと簡単なので実装してみましたが、実際は送信ボタンだと、サーバー へ送信されるデータが変わってしまうので良くありません。ですから、それを回避する 為に、保存用のボタンを通常ボタンに変更して本来のボタンを呼び出すようにしたもの をもう一つのサンプルとして作成しました。 2010/01/29 現在の Install はこのバージョンです。
▼ 以下は初期のソースコードです
// ==UserScript== // @name Seesaa Entry // @namespace http://winofsql.jp // @description Seesaa Entry Extentions // @include https://blog.seesaa.jp/pages/my/blog/article/regist/input* // @include https://blog.seesaa.jp/pages/my/blog/article/edit/input* // ==/UserScript== var i; // この前に挿入( 入力テキストエリア ) var tag = document.getElementById("article__body"); var parentTarget = tag.parentNode; // 入力エレメントを作成 var obj = document.createElement("INPUT"); // 送信ボタン obj.setAttribute( "type", "submit" ); // 保存する( unicode ) obj.setAttribute( "value", "\u4fdd\u5b58\u3059\u308b" ); // 挿入 parentTarget.insertBefore( obj, tag ) // 位置調整 obj.style.marginLeft = "460px";
※ 配布ページは、フレームでない必要があるようです。 ※ ユーザースクリプトは、"任意の名前.user.js" という形式である必要があります