No タイトル ステータス 重要度 担当 完了予定日 更新日時 記事数
54 恐怖の実験室(Lunascape6β/RC用) 進行中 最低 AO 2010-04-30 08:30 2010-03-16 22:59 76
  • AO
  • 2009-11-20 10:13
ここでは、Lunascape6β用のスクリプトを実験していきます。

Lunascape6βでは新しくAPIが追加されていますが、
仕様が固まっていなかったり、リファレンスの不備が見られるので
手探り状態で、正に「実験」段階となります。

Lunascapeの強制終了やPCのフリーズなどの恐怖を味わってみたい
人向けです。
  • AO
  • 2009-11-20 10:14
Lunascape6β用のダミープラグ(イン)

Lunascape6βからトリプルエンジンでブックマークレット形式のjavascriptを実行するAPIが
実装されました。

これを使って、トリプルエンジンで共通の処理を使って実行するダミープラグ(イン)です。

Tridentでユーザースクリプトを実行する基幹部分の変更はありませんがブックマークレット形式
のjavascriptを実行する処理に変更があります。

旧バージョンでは、Geckoエンジンのみブックマークレットの実行をする様にしていましたが、
トリプルエンジンで実行する為に、ブックマークレット形式の書式が変わります。

◆トリプルエンジンで共通のブックマークレットを実行する例◆

//TGWjavascript:alert('Hello World');
(T、G、Wがそれぞれエンジンタイプの頭文字で、このブックマークレットを実行するエンジンを表します)

また、トリプルエンジンで共通のブックマークレットを実行する場合に限り、この頭文字を省略することが
出来ます。

◆個別のエンジンでブックマークレットを実行する例◆

//Tjavascript:alert('Hello Trident');
//Gjavascript:alert('Hello Gecko');
//Wjavascript:alert('Hello WebKit');

上記のようにエンジン毎に異なったブックマークレットを実行させたい場合は、それぞれのエンジンで
実行させたいブックマークレットを3行で記述します。

Tridentのみで実行させたい場合は、Tjavascript:で始める一行だけ、記述します。
Geckoのみで実行させたい場合は、Gjavascript:で始まる一行だけ、述します。
WebKitのみで実行させたい場合は、Wjavascript:で始まる一行だけ、記述します。

◆二つのエンジンで共通のブックマークレットを実行する例◆

※例1
//TGjavascript:alert('Hello Trident-Gecko');

※例2
//TWjavascript:alert('Hello Trident-WebKit');

※例3
//GWjavascript:alert('Hello Gecko-webKit');

上の例の様に、頭文字を組み合わせる事で、希望のエンジンに共通のブックマークレットを実行させる事が
出来ます。

◆共通の注意点◆
これらのブックマークレットを実行させる為には、ブックマークレットはユーザースクリプトのヘッダ部分に
記述する必要があります。

※記述例
// ==UserScript==
// @include fixdap
//Tjavascript:alert('Hello Trident');
//Gjavascript:alert('Hello Gecko');
// ==/UserScript==

必ず、// ==/UserScript== の行より前に記述してください。

ブックマークレットの記述が無ければ、従来のダミープラグ(イン)同様にTridentエンジンの場合はヘッダ以降の
スクリプトが実行されます。
(Gecko、WebKitの場合は実行されません)

Tridentの場合は、ブックマークレットを実行した後、従来のダミープラグ(イン)同様にヘッダ以降のスクリプトが
実行されます。


◆◆既知の不具合◆◆
2009/11/20
今回のAPIで、どのエンジンでもスクリプトでブックマークレットを実行させることが出来るようになりましたが、
Geckoエンジンにおいて、アドレスがjavascriptの文字列に設定されてしまう現象が見られます。
従って、Geckoエンジンでブックマークレットを実行させた場合、手動でエンジンの切替を行うと、正常に表示
させる事が出来ません。
添付ファイル:
L6dummy_plugin0600.lzh
  • AO
  • 2009-11-20 13:07
Geckoエンジンにおいて、アドレスがjavascriptの文字列に設定されてしまう現象は、Lunascape6β2で修正されている事を確認しました。
  • AO
  • 2009-11-24 09:33
Lunascape6β用のダミープラグ(イン)
バージョン0.6.0.1

2009-11-20 10:14のバージョンで、一つのブックマークレットに
複数エンジンを指定した場合に、最初の頭文字しか機能していなかったのを
修正。
添付ファイル:
L6dummy_plugin0601.lzh
  • AO
  • 2009-11-24 20:35
一応、スピードダイヤルが動くようになってます。

ダイヤル追加時に、Gecko、WebKitで開いているタブからもタイトル・URLを
取得して、プルダウンメニューに表示するはずですが、空欄になってしまう時は、
一度キャンセルして、やり直して見てください。
  • AO
  • 2009-11-24 20:57
当方で動作確認。WebKitでtwitterを開いたら、pbtweetを動かすユーザースクリプト

// ==UserScript==
// @include twitter.com
//Wjavascript:var pb_script=document.createElement('script');pb_script.src='http://web.me.com/t_trace/pbtweet/pbtweet_stable.user.js';document.getElementsByTagName('head')[0].appendChild(pb_script);return(false);
// ==/UserScript==
L6dummy_plugin0601のスピード☆彡ダイヤルを使ってみました。
月光でダイヤル追加時にタイトルが空白でキャンセルしても表示されませんが、追加は出来ました。
やっぱりアドオンのダイヤルより、こっちの方が使ってて楽しいですよ。
XP IE7 Luna6β2



  • AO
  • 2009-11-26 13:32
yagami_rightさん、いつも有難う御座います。

今回のLunascape6β対応は、新しいAPIを使用していていますが、
API自体の挙動が不安定な所もあるようなので、プラグインの動作も
決して安定しているとは言えないのが実情です。
その点を御留意ください。

また、スピードダイヤルはローカルのファイルを読み込んでいるのですが、
当方の環境(Win2000、IE6)ではローカルファイルを読み込むと、メモリ
消費量が増加し続ける現象が見られます。
その点もご注意ください。

しかし、使いなれたスピードダイヤルでルナ助のcssを使いたいので、
何とか安定する様に修正していきたいと思います。
  • AO
  • 2009-12-01 10:40
Lunascape6RC用のダミープラグ(イン)
バージョン0.6.0.2

タブの読み込み状態をLunascapeAPIのIsBusyから取得して、
ビジー状態から抜けていたらユーザースクリプトを実行するように
修正。
読み込み完了まで待つので、反応は遅くなります。

サンプルに、タブ毎の使用エンジンの頭文字をタブに表示する
ユーザースクリプトを同梱

添付ファイル:
L6dummy_plugin0602.lzh
  • AO
  • 2009-12-07 11:09
Lunascape6RC用のダミープラグ(イン)
バージョン0.6.0.3

Gecko及びWebKitエンジンでのouter_script未使用時の処理追加
添付ファイル:
L6dummy_plugin0603.lzh
  • AO
  • 2009-12-21 20:14
Lunascape6用のダミープラグ(イン)
バージョン0.6.0.4

Tridentエンジンでのouter_script使用時の処理をL5相当に戻しました。
スピードダイヤル使用時に、スピードダイヤルのタブを閉じても
メモリが開放されない(スレッドが残ってしまう)のを修正したつもりです。
添付ファイル:
L6dummy_plugin0604.lzh
  • AO
  • 2010-01-05 14:58
Lunascape6用のダミープラグ(イン)
バージョン0.6.1.0

ダミープラグ(イン)の仕様変更に伴い、同梱の説明文を書き換えました。
良くお読みください。
スピードダイヤルの説明文を同梱しました。

※注意※
スピードダイヤルでデフォルトのサムネイルの取得方法をLunascapeAPI使用
に変更しました。
(但し、crenaフォルダが或る場合は、従来通りCrenaHtml2jpgを
 使用します)

かなり手を加えています。しかも、オフラインで検証していた為、オンラインでの
不具合もあると思います。
動作報告頂ければ幸いです。
添付ファイル:
L6dummy_plugin0610.lzh
  • AO
  • 2010-01-07 10:32
Lunascape6用のダミープラグ(イン)
バージョン0.6.1.1

document.getElementsByTagName().item()がnullの場合のエラー修正
(addelement.jsの修正)
添付ファイル:
L6dummy_plugin0611.lzh
  • AO
  • 2010-01-07 19:42
スピードダイヤルの登録で、「現在開いているタブから選択」の一覧に
Geckoエンジンのタブが空欄になる件。
以下のユーザースクリプトを入れて見てください。

タブが開いた時に、否応無しにタイトルを取得するための要素を追加しちゃいます。
スピードダイヤルでの登録時は、その追加された要素を読みに行きます。(多分?)
上手く行けば、汎用性があるかもしれません。
添付ファイル:
0set_title.user.js
  • AO
  • 2010-01-12 09:19
Lunascape6用のダミープラグ(イン)
バージョン0.6.2.0

サイドバー上にユーザースクリプトのファイル名一覧を表示するようにしました。
ファイル名をクリックすると詳細(スクリプト名・バージョン・作者)が表示されます。

※記述例
// @author AO
// @name テスト用サンプル
// @ver 1.0.0.0

更に、ボタンで「無効にする」「有効にする」の切替が出来ます。
これは、ユーザースクリプトのファイル名を
hogehoge.user.js ⇔ hogehoge.u.js
とリネームする事で切替を行っています。
添付ファイル:
L6dummy_plugin0620.lzh
  • AO
  • 2010-01-13 09:45
サイドバーの活用で、別のパターンも考えています。
機能的には大差ありませんが、見た目が違います。

ユーザースクリプトのファイル名と、有効・無効のボタンが
通常表示されるものです。

dummy_plugin_sub.vbsをこちらの添付ファイルに差し替えると
試用できます。
添付ファイル:
dummy_plugin_sub.vbs
  • AO
  • 2010-01-18 19:48
Lunascape6用のダミープラグ(イン)
バージョン0.6.3.0

サイドバー上に、ユーザースクリプト有効・無効のボタンを常に表示するようにした。

サイドバー上のボタンでダミープラグ(イン)を「一時停止」「再開」できるようにした。
ダミープラグ(イン)が起動していると不具合のあるサイトの場合「一時停止」にして下さい。

プロトさん作成の「スピードダイヤルabout:blank版」を同梱。
添付ファイル:
L6dummy_plugin0630.lzh
  • AO
  • 2010-01-19 16:44
Lunascape6用のダミープラグ(イン)
バージョン0.6.4.0

サイドバーの一覧にはスクリプト名を表示し、ファイル名は詳細に表示するようにした。
有効・無効のファイルが重複して存在している場合、有効・無効のボタンを押した時に
ユーザーに、削除するか否かの判断をしてもらうようにした。

Tridentの処理で、document.readyState = 'complete' を待つようにした。
添付ファイル:
L6dummy_plugin0640.lzh
  • AO
  • 2010-01-21 11:04
ユーザースクリプトでouter_scriptを指定した場合の呼び出し先

function dummy_main(){}

の記述が無かったので、以下のユーザースクリプトを修正しました。
差し替えをお願いします。

0set_title.user.js
show_engine_type_color.user.js
SpeedDial_dummy.user.js
添付ファイル:
0set_title.user.js
show_engine_type_color.user.js
SpeedDial_dummy.user.js
  • AO
  • 2010-01-21 15:02
因みに、show_engine_type_color.user.jsは、エンジン毎のmy_colorを
書き換えれば、自分の好みの色に出来ます。
私が使っているものを参考に、下へ記載します。

// ==UserScript==
// @author AO
// @name エンジンタイプカラー表示
// @ver 1.0.0.1
// @include *
// @exclude .xul
// @type outer_script
// ==/UserScript==

var my_color
if(Lunascape.EngineType(Lunascape.ActiveIndex) == "{248B8F5D-FAE2-4f0e-9EC9-3B408DBF0B2B}"){
my_color = "16711680";
}
if(Lunascape.EngineType(Lunascape.ActiveIndex) == "{614BA303-C6AB-47ec-B8B1-47908AEDDEDC}"){
my_color = "25600";
}
if(Lunascape.EngineType(Lunascape.ActiveIndex) == "{EE4BBE46-460C-4533-9816-E265BD02424D}"){
my_color = "128";
}

Lunascape.FontColor(Lunascape.GetDocumentId(Lunascape.ActiveIndex)) = my_color;

function dummy_main(){}