SQLの窓

2010年01月31日


Greasemonkey でSeesaa の記事投稿のテキストエリアの右上に保存ボタンと記事一覧画面の一括編集ボタン

2010/01/31 : 更新しました
Install

▼ Greasemonkey のインストールページ
Greasemonkey :: Add-ons for Firefox

Seesaa_listmtn

以前からブックマークレットとして作ってあったものを移植しました。

twilogGreasemonkey というのを知って、Firefox の拡張を使いやすくしたもの
だと言う事が解り、早速、ブックマークレットで作ってもあまり需要のなさそうな
Seesaa の記事用の保存ボタンをテキストエリアの側に追加するというのを作って
みました。

Gm

マニュアル読んでみると、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";

ソースコード解説(バージョン2)
※ 配布ページは、フレームでない必要があるようです。
※ ユーザースクリプトは、"任意の名前.user.js" という形式である必要があります


【Firefoxの最新記事】
posted by lightbox at 2010-01-31 22:57 | TrackBack(0) | Firefox | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり