Kei_9 なげやりにっき このページをアンテナに追加 RSSフィード Twitter

2010-09-26

[][] Chrome Frame 安定版リリースだそうで・・・

早速導入してみましたよ♪

今回のものは右クリメニューもしっかりとローカライズされていました。

Google Chrome Frame

ただ、例によってインストールしただけではサイト側が対応してくれていないとChrome Frameによるページのレンダリングは行われませんし、gcfプロトコルも有効になっていません。

前回のβ版のときにはレジストリの当該箇所にEnableGCFProtocolというDWORD値を追加して値を1にセットすることで有効になりましたが、今回はそのあたりに変更があったようです。

また、レジストリに追加で利用できる値も大幅に増えていますので弄り甲斐があります♪

このあたりの詳細についてはDeveloper Guide(英語)を参照してくださいね。


さて、SleipnirやGraniでChrome Frameを有効利用するにはとりあえず gcfプロトコルを有効にしてやらないといけません。

先にChrome Frameのインストールを済ましておいてからレジストリエディタを開いてHKEY_CURRENT_USER\Software\Google\ChromeFrameへ移動します。

右ペインの何もないところを右クリック。メニューから新規DWORD値を作成し、名前をAllowUnsafeURLsとします。

次に作成したAllowUnsafeURLsを右クリックして修正を選択。値のデータへ数字の1を入れて確定。

以上でgcfプロトコルが有効になります。

・・・ていうか以下のコードをテキストエディタへコピペして適当な名前+拡張子regで保存して右クリメニューから結合を選択するだけでOKです。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Google\ChromeFrame]
"AllowUnsafeURLs"=dword:00000001

コレでgcfプロトコルが有効になりましたので適当なページを開いてからアドレスバーの文字列の先頭に gcf: を付加して移動してみましょう。

たとえば

http://www.google.co.jp/

であれば

gcf:http://www.google.co.jp/

と、いったようにします。

コレでアドレスバー右側の移動ボタン(EnterでもOK)を押すと・・・あれっ?


そう、真っ白なページが出現しましたね(笑)


どこでもいいので真っ白なビューの適当なところをクリックしてやるとページが現れます。

この変な挙動はβの時に解消されていたはずだったんですけどね、なぜか以前の状態に戻っちゃいました(´・ω・`)

ただ、ブックマークレットでgcfプロトコルを付加してあげると一発で開いてくれますので普段はコレを利用した方が便利かも。

  • ブックマークレット*1
javascript:location.href = 'gcf:' + location.href

他にメニューエディタでブラウザ標準/アンカーへアクションとして登録する方法を以前紹介しましたが、新規ウインドウで開くためにwindow.openを使った以下のコードだとポップアップブロックに引っかかるという問題がありました。

URL = "javascript:(" + function(){
window.open ('gcf:' + location.href,'_blank');
} + ")()";

そこでSleipnir APIのテキストを読み返してみたらNewWindowというのがあるのに気づいたのでこちらを使ってみたところ問題なく開けることを確認しましたのでもし以前のモノをお使いの方がいたら変更をお勧めします♪

sleipnir.API.NewWindow('gcf:' + location.href,true);

たった1行のシンプルなモノになりました♪*2

ただしこの方法でも開いたページはビューを一度クリックしてやらないとダメでした><

なんとかスクリプトだけでWebKitのビューをクリックできないモノかと模索してみたのですがあえなく討ち死に・・・

以前良く使っていたAutoHotKeyを使ってやれば簡単なんですけどね。*3


でも、IE9が利用できないXPユーザーの方には是非とも試していただきたいですね。

特にSleipnir StartやGoogleの各種サービスみたいなjavaScript使いまくりのサイトでサクサク動作するのを体験したらIE7/8には戻りたくなくなりますよ♪


あ、そうそう。中身はGoogle Chromeと同等なので例の翻訳バーも出現します(笑)

*1:ブックマークレットでの利用はお気に入りへ登録するとき適当な名前にしてアドレス入力欄へコードをコピペします

*2:Graniな方は文頭の"sleipnir"を"grani"へと書きかえてください。

*3:AutoHotKeyとのコンボスクリプトが欲しいという方がいれば配布を考えます。

2010-09-17

[] IE9βきたよんワチョ――ヽ(・∀・)ノ――イ♪

Sleipnir使いな人にとっても気になるIE9の動向ですが、UIの素っ気ないプレビュー版を二度経て事前予告予告通りのβ版がダウンロード出来るようになりました。

これがまた結構な完成度で日本語版も用意されていますので試さない手は無いです。

ただし、現存のIE7もしくは8の環境に上書きされちゃいますのでお試しだけにしておきたい人は事前にシステムの復元ポイントを作成しておいた方が安心かもです。

で、どうなの・・・?

IE9βを入れることによってSleipnirが何らかの恩恵をうけられるのかってことですよね。

結論から言うと『YES』です。

HTML5のレンダリング、ならびにCSS3に準拠したサイトを訪れてみると一目瞭然。*1

そういったサイトを探すのが手間な方はIE9β Test Driveへアクセスして用意されているいろんなコンテンツを試して見るといいでしょう。


これは言い換えるとsystem32に登録されているHTMLレイアウト用のTridentエンジン(実体はmshtml.dll)がIE9βのものに置き換わっているため、以前のIE7もしくは8のファイルは利用出来なくなっているということを指します。


javascript用の新エンジン(Chakra)もjscript9.dllという名前でsystem32へ登録されていますが、そのままではSleipnirで利用することは出来ず、従来型*2のjscript.dllが利用されてしまうようです。

で、当然ヒトバシラーなワタシはjscript9.dllとjscript.dllのフルコントロール権限を奪取した上で別フォルダへjscript.dllのオリジナルを待避。

そしてsystem32にあるjscript.dllをさくっと削除したのちjscript9.dllをsystem32へ複製し、それをjscript.dllへとリネーム。

ブラウザを立ち上げ直してSun Spiderベンチを確認したところトータルでノーマル(jscript.dll)時の軽く100倍速という結果を確認出来ました♪


system32いじるの怖いって方向けtips

実はIE6が出た当時からあるtipsなのですけど、IEの新機能をSleipnirで利用するための手段として実行ファイル名をIEのものに偽装するという手がありました。

IE6当時、画像ファイルをブラウザで開くとビュー内に小さなツールバーが現れてごにょごにょ出来るという機能(イメージツールバー)があったんですけどそれをSleipnirでも有効にするためにはbinフォルダ内にあるSleipnir.exeをiexplore.exeにリネームして実行すると利用出来るようになるというもの。

どうやら今回のIE9βでもその手が有効なようです。*3

実際に仮想環境の2008serverで試して見ましたが、ばっちりjscript9.dllが有効になっってくれました♪

やり方は上に書いたとおりSleipnirインストールフォルダ>bin>Sleipnir.exeをiexplore.exeにリネームするだけ。

あるいはSleipnir.exeを複製しておいて、一方をiexplore.exeにしてしまうのもアリですね。

ショートカットを二つ用意しておけば以前のjscript.dllと新しいjscript9.dllでのベンチを比較するのが簡単になりそうです♪

現状での問題点

新しいとはいってもまだβ。

ましてやSleipnirなどでの利用を想定してリリースされているわけではないでしょうし、Sleipnir側の対応もこれからでしょうからアレなんですけど、致命的とは言わないまでもやはり現状ではちと厳しい問題があったりします。

いま確認出来ているのは

  • ダウンロードリンクをクリックしても反応しない場合がある。
  • 動作しなくなったスクリプトがある。

以上2点です。

ダウンロードリンクが反応しないのは、多分IE9βで採用された新しいダウンロードダイアログの実装にSleipnirが対応できていないせいだと思われます。

IE9β側で試すとわかりますが、以前のようなダイアログウインドウではなくビューの下へ要素を追加した感じで現れるようになっています。

これは利用出来ないとなるとかなり困っちゃいますので、何とかするとすればダウンロード用プラグインとして用意されているLorikeetを導入するか、あるいは他ののブラウザエンジンに切り替えるしかないですね。*4

ただ、時々以前のスタイルのダイアログが出現してくれることもあるのでこのあたりはβゆえの不安定さなのかなとおもってみたり。


それとスクリプトも一部のコードが問題らしく、outputドックが頻繁に『こんにちは』してきます(´・ω・`)

これはSleipnirの内部的なモノなのかSeahorse側の対応でなんとかなるのかよくわかりませんが*5、いずれにしろまだまだβリリースでのことなのでMSとFenrirの動向をながーい目で見守っていきまっしょい♪

test5もきました

IE9β入れているとGmailで不具合が発生するそうな。

暫定対策らしいので仕事でGmailを頻繁に利用している方などはIE9β自体、インスコしない方がいいかもですね・・・(´・ω・`)

Sleipnir Part245
http://hibari.2ch.net/test/read.cgi/win/1284558177/41

41 名前:たば ◆taba/PbPvA [sage] 投稿日:2010/09/17(金) 17:26:31 ID:93NIu4rz
たばです。test5 です。
test 版の趣旨がわかるかたのみ、お使いください。

※Windows XP 以降でしか動きません。
※問題のあるプラグインは読み込まないようにしています。
2.8.5 test11 より前の環境から上書きして使う場合はプラグインの再インストールが必要です。

http://extensions.tabbrowser.jp/labs/yasuyuki/test5.zip

test 版用プラグイン置き場
http://extensions.tabbrowser.jp/labs/yasuyuki/plugins/

[新機能]
			
IE9 に暫定対応した。(たば)
IE9 環境で Gmail が正常に動作しないので暫定的に対応しました。 Gmail の一部機能は IE9 でも動かないことがあります。 IE7 互換モードに切り替えて使って下さい。 IE9 のときは IE8 モードにはできません。

*1:ただしcssの解釈を最新の状態にするにはレジストリを弄る必要があります。詳細は本スレに記されていますがtest5でとりあえず利用可能になったようです。http://hibari.2ch.net/test/read.cgi/win/1284558177/25

*2:というかタイムスタンプを見る限りjscript9.dllと同時に刷新されているようなのですが性能向上は確認出来ませんでした。

*3:元ネタはTwitterのTLからなのですが、つぶやきをロックされている方なので内容のコピペは出来ません。

*4:ちなみにロリキートを有効にしてダウンロードリンクを踏み、Lorikeetをキャンセルするとおなじみのダイアログが現れました。意味ないけどw

*5:ざっと挙動をチェックしてみたところ、Seahorseスクリプトにおいては@Type SleipnirScriptがヘッダへ記されているわけでもないのにSleipnirScriptとしてしか動作していないような感じでした。試しに通常のdocumentを_documentへ置き換えてやるとエラーを吐かなくなり、location.hrefにも先頭に_documentを追加したら正常動作になったりとか・・・ユーザーアクションスクリプトも同様な挙動です。

2010-09-12

[] Google Chrome風のアレを作ってみた『その2』

今度のはGraniでも導入が簡単だよ!

設置方法は最後の方にありますので駄文は飛ばしていただいても結構ですよ〜(自虐)


前回、自分のスキルに見合った方法で適当にでっち上げたGoogle翻訳Dockみたいなものはあまりにも稚拙であったため、ハッキリ言って導入の手間に見合うだけの判定精度も無く使い勝手もいまいちな物でした。

そこでせめて導入の手間だけでも減らせるようにしたいなと慣れないjavaScriptと格闘しつつ、Seahorseスクリプトだけで完結できる物を作ってみようと手を付けはじめてつぶやき処のTLへ習作のスクショを上げた矢先、多分前作のあまりのつたなさを見かねたのでしょう(笑)、Sleipnirのスクリプトをいろいろ作って我々ユーザーに提供してくれているあの8th_713さんがチャチャッと作ってコレでどう? てな感じでgistにアップしてくれました。

その後しばらくしてよりいっそう作り込まれた物も上がってきましていやもうコレは出る幕はないなと。

  • こんな感じに表示されます


ただ、gistの性質上rawから落としたファイルの文字コードはutf-8なのでそのままだとShift-Jisが前提のSeahorseではユーザースクリプトととして利用できません。

そこで、オリジナルのスクリプトの文字コードだけを変えて保存し直した物をこちらへ上げておきます。

続きを読む

2010-09-05

[] ページ翻訳:Google Chrome風のアレを作ってみた

Google Chrome使っていて日本語のページじゃないところにアクセスするとビューの上部にこのページ翻訳しますか? みたいな大きなお世話のバーが出現しますよね。

いや、確かに便利なんですけどSleipnirであればブックマークレットやそのアクション化で同様なことができるわけです。

でも、Chromeみたいなインターフェースを好む方も中にはいらっしゃるようで・・・


先日TwitterのTLを見ていたらフォローしている方がFUCの投稿に関連したつぶやきをされていました。

リンクが貼られていたので確認したところ、Chromeのお節介機能をSleipnirにも実装して欲しい、みたいな書き込み。

実際Chromeをセカンドブラウザとして利用している自分としてはあの機能は(`皿´)ウゼーだけなんですけどそれをヨシとする方も存在するんだなーと。

でもまぁ少し考えてみてアレとコレの組合せでなら自分でも似たようなモノが実装できそうかも知れないなーとか思い出したのが運のツキ。

てなわけで苦手な正規表現を一から勉強するハメになりつつも、なんとかそれっぽいモノができましたので公開してみます♪

  • 本文に日本語が存在しないサイトを訪れるとビューの上部にGoogle_Translate Dockが出現します


ただし、本家Chromeみたいにここは翻訳するに及ばず、みたいなサイトを自動で登録するのはワタシのスキルが追いついていないので今回は見送らせていただきました。

どうしても動作させたくないサイトがあるならばチョット手間ではありますが各々Seahorseスクリプトのヘッダに// @excludeを追加していただければと・・・


それとSeahorseスクリプトだけで完結できるかもとは思いましたが、いわずもがなスキルが及ばずましてやDOM操作は不得手なので今回はIEDockExとSeahorseスクリプト、そしてブックマークレットをアクション化したファイルの組合せでそれっぽくすることを目指しました。

まぁ普通に利用するぶんには問題ないかなーと♪


流れとしてはSeahorseスクリプトで訪れたページのbodyタグ内に日本語(ひらがな/カタカナ-ハンカク含む)が存在するかどうかを判定して、本文内に日本語が見つからなければアクション化したブックマークレットを呼び出すといった感じです。Google翻訳は対象の言語を自動判定してくれますので日本語以外で対応している言語であればコレだけでOK!

最初作り始めた頃はタイトルタグの中身で判定させてみたんですが、現実には日本語サイトであってもタイトルが日本語とは限らないということもあってbodyを探るスタイルに変更。

ただし仕様上、サイト内スクリプトによる描画で表示される文字には対応しきれません。なのでページに日本語が見えているのにお節介バーが出現するという場合もありえますのであしからず。

正規表現によるbody全体の検索はタイトル判定に比べるとIEDockExを呼び出すまでのタイムラグが気になったんですが、実際試してみたらおもったほど遅くもなかったのでコレでいいのかなぁと。

それと当初は漢字も判定の対象にしていましたが、当然のことですけど中国語のサイトではマズかったのであえてひらがな/カタカナおよびそれの半角へと簡素化しちゃいました。


なにぶん、一夜漬で慣れない正規表現を仕込んだので晒すのがマジで(/ω\)ハズカシーんですけど、多分もっとスマートなやり方があるハズ・・・

  • Seahorseスクリプト部分
// ==UserScript==
// @name Google_Translate
// @description 日本語じゃないページを見つけるとGoogle_Translate(IEDockEx)アクションを実行
// @include http*
// @exclude http://google.*/*
// @exclude http://seesmic.com/*
// @type SleipnirScript
// ==/UserScript==
if (document.title !== 'Google 翻訳'){

// bodyの全内容を取得
var node = document.body.innerHTML;

// nodeからHTMLタグ、改行、タブ文字、半角/全角スペースを除去
var rep = node.replace(/<.*?>|[\n\r\t]| | /g,'');

// 日本語が存在しなければアクション実行。ただし中国語のときに具合がわるいので漢字判定はしていない
if (!rep.match(/[ぁ-ん ァ-ン ァ-ン]+/g)) {
ShowToggle();
}

// 翻訳ページに遷移したらGoogle_Translate Dockをしまう
if (location.href == '/^http:\/\/translate\.google\.com\/.+/'){
ShowToggle();
}


// Google_Translate Dockの表示/非表示
function ShowToggle(){
sleipnir.API.ExecuteAction('ShowGoogle_Translate')
}
}

Graniで利用する場合はIEDockExを自分で設置して、上記のスクリプトの最終行付近にある

sleipnir.API.ExecuteAction('ShowGoogle_Translate')

の部分を

grani.API.ExecuteAction('ShowGoogle_Translate')

のように書きかえます。

それとGraniにはplefsフォルダにplugins.iniが無い場合がありますのでその際は新たに作成してやる必要があります。

※Graniでplefsフォルダ内にplugins.iniが存在しない場合、Sleipnirの公式スキンページ(Grani用ではない)からいずれかのスキンをインストールすることで自動生成されます。

  • Google_Translate Dock(IEDockEx)のindex.html
<!-- saved from url=(0014)about:internet -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>Google_Translate</title>
<style type="text/css">
body {
	background-color:lightgreen;
}
div#outer {
	margin-top:-20px;
	width:100%;
	text-align:center;
}
div#inner {
	margin:0px auto;
	width:200px;
}
a.tt {
	width:48px;
	height:20px;
	background:transparent url("images/Translate.png") top left no-repeat;
}
a.tt:hover {
	background:transparent url("images/Translate.png") center  bottom no-repeat;
}
a.ce {
	width:48px;
	height:20px;
	background:transparent url("images/Close.png") top left no-repeat;
}
a.ce:hover {
	background:transparent url("images/Close.png") center bottom no-repeat;
}
span {
	font-size:10px;
	color:darkgreen;
}
</style>
</head>
<body>
	<div id="outer"><span>おや、どうやら日本語のページではないようです... ページによってはうまくいかない場合がありますがGoogle翻訳を試みますか? </span>
		<div id="inner">
		<a class="tt" href="action:Google_Translate"></a>
		&nbsp;&nbsp;
		<a class="ce" href="action:ShowGoogle_Translate"></a>
		</div>
	</div>
</body>
</html>
  • Google_Translate Dock(IEDockEx)のconfig.ini
[Settings]
Action=true
ContextMenu=false
ScrollBar=false
Align=top
Size=40
  • Google_Translate.js(アクション用)
URL = "javascript:(" + function(){var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection&&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/?text='+t+'&hl=ja&langpair=auto|ja&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+encodeURIComponent(location.href)+'&hl=ja&langpair=auto|ja&tbb=1&ie='+e;};} + ")()";

今更ですけどIEDockExプラグインとSeahorseおよびUser Action Extensionは必須です。今回のネタを試したい方はあらかじめこれらのプラグインをインストールしておいてください。*1

それとSleipnirオプション>全般にある”スクリプトによるクライアントの操作を許可する”を有効にしておく必要があります。


と、いうことで現段階でのファイルを用意しておきますね。



7zip圧縮してありますので適当なツールで展開後にSleipnirインストールフォルダのpluginsフォルダへ上書きするだけです。

ファイルを設置したら、plefsフォルダにあるplugins.iniの[Dock]セクションへGoogle_Translate.fxファイルを登録する必要があります。

また、設置後にSleipnirを立ち上げたとき標準状態でメニュー>表示>Dock>Google_Translateのチェックを外しておくことをお忘れ無く。

[Dock]
Dock1=ExplorerBarTabDock.fx
Dock2=ExplorerBarDock.fx
Dock3=TabDock.fx
Dock4=SearchDock.fx
Dock5=OutputDock.fx
Dock6=SagittariusDock.fx
Dock7=InformationDock.fx
Dock8=Google_Translate.fx  ←こんな感じで[Dock]セクション末尾に連番で追加してやります

Sleipnirを立ち上げたあと適当に日本語以外のページ(Google翻訳が利用可能な言語に限る)へアクセスすると、ビューの上部へ翻訳するかい? みたいなメッセージが出現します。*2

翻訳ボタンを押すとWebページがGoogle翻訳ページへと遷移してGoogle_Translate Dockが自動的に消えます。仕様変更で消えなくなっちゃいました・・・(´・ω・`)

翻訳を選ばずに閉じるボタンを押すとページはそのままでGoogle_Translate Dockだけが消えます。


まぁいろいろとダメ出しされそうですがとりあえず動作するからいいかな、みたいな。


追記

さっそくTwitterでダメ出しされました(笑)

  • Google_Translate Dockが表示されている状態で他のタブに移っても表示されたままになる。
    • 当然です。他のタブに移ってもそれを検知して閉じる機能は未実装ですので現段階では仕様です。
      ていうか必要ないのであればその時点でDockを閉じてください。
  • ScriptBlockプラグインを入れているとボタンが反応しない。
    • あたりまえです。
  • 翻訳したページを再読み込みすると、Google_Translateされているページを翻訳状態でGoogle_Translateスクリプトが再度起動してしまう。
    • 現時点では仕様です。http://translate.google.comを除外設定するのはスクリプトの性格上無理っぽいので。ていうかそんな無駄なことをしないでください(笑)
      翻訳後のページを再読み込みすることになにか意味があるのですか?
追記2

上記3番目については対策を行い、本文編集並びにファイルの差し替えを行いました。

あわせてGrani用ファイルも用意しましたので、IEDockExプラグインを設置後にご利用ください♪

*1:ちなみにGraniでも利用可能ですよ♪

*2:あえて海外ベンダーが使いそうな言い回しにしてみたりとか(笑)気に入らなければindex.htmlを書きかえてくださいね。

2010-09-02

[] 改良版ブラウズなうスクリプト

先日紹介したTwitter純正ブラウズなうスクリプトですが、その後いろいろとダメな部分に手を加えられていきましてとってもいい感じになりましたのであらためて公開させていただきます。

Super Drag Extension必須です。
また、スクリプトファイルはShift-JISにて保存してください。*1

// ShareThisOnTwitterSuperView

//全角英数字を半角に
var doc = document.title.replace(/[A-Za-z0-9]/g, function(s) {
    return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});
//半角カッコを全角に(変換異常対応)
doc = doc.replace(/[(-)]/g, function(s) {
    return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
});
//118文字以上はカット
if (doc.length > 118) {
    doc = doc.slice(0,115) + '...';
}
//引用符で囲む
doc = ['“',doc,'”'].join('');

sleipnir.API.ExecuteAction('SuperDragShowSuperView("http://twitter.com/share?text=' + encodeURIComponent(doc) + '&url=' + encodeURIComponent(location.href) + '",17,9999,40,550,320)');

ワタシは正規表現というヤツがどうにも苦手でして・・・(汗

とってもいい感じに改良してくださった@aireinaさん、@10th543さん、ありがとうございました♪


ネットで拾ったフリーアイコン画像を使ってアクション用画像を作り直しました。

よかったらどうぞ→*2   

*1:文字コードの関係でUTF-8だとうまく動作しないようです。

*2:アクション名.pngへ名前を変更してdefaultスキンのactionsフォルダへ移動すればSagittarius Dockなどで利用出来ます。





月別アーカイブ

2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |

フォト蔵

本コンテンツをご覧になるには、Flash Playerプラグインが必要です。FlashのWebサイトよりインストールしてください。

Banners