Home / Diary / タグ: opera
やってることはopera_exや前のWSHと同様。コマンドライン引数から色々コピーさせている。
前のWSH版は1ファイルで完結していたが、クリップボードに入れる動作が重かった上にキャッシュからタイトルを取得していたのでCPUパワーが有り余っていないと使用するのがキツかった。
その点、AutoHotKeyならプログラム自体がクリップボードを操作できるし、アクティブウインドウのタイトルも取得できるので、opera_ex以上のことを1ファイルで実現することができる。・・・AutoHotKeyを常用している人の場合は、だが。
とりあえず標準でこれだけ搭載。
- ページタイトルをコピー
- タイトルとURLをコピー
- ページのアンカーを作成
- リンクからアンカー作成
- リンクからアンカー作成(参照元付き)
- 選択テキストとURLをコピー
- 選択テキストからページのアンカーを作成
- コードブロックを作成
- 引用
- 引用元を付けて引用
- 改行で順序無しリストを作成
- 改行で順序有りリストを作成
- これらのMarkdown文法バージョン
AutoHotKeyのスクリプトはテキストベースなんで、容易に拡張できるのがポイント。opera_exのように別途テキストファイルを用意する必要も無い。
さらに、Operaから離れるが、このスクリプトはオプション無しで文字を渡すだけで、その文字をクリップボードに入れるようにしているので、WSH等からも利用できるようにしている。
例えばディレクトリ内のファイル一覧をクリップボードに入れたい時なんかは、今までだと裏でIEを起動していたのだが、こっちならコマンドラインから呼び出して終わりなので、圧倒的に処理が早い。
clipboard.ahk
スクリプト内にOperaのmenu.iniに登録する際のサンプルを載せているので、導入する方は参考にして欲しい。スクリプトの改造はAutoHotkeyを流行らせるページを参考にするといいだろう。
Info
- 投稿日
- 2006年11月21日
- タグ
- ahk、opera
- このエントリの固定リンク
- http://diary/log/1484.html
- ブックマークに追加する
-
- コメント
2006
1121
Tagsahkopera
God of War(ゴッド・オブ・ウォー)
うちのエントリだけど、まずこれを開く。一番下までスクロールした後にスペースキーを押すと、次のエントリに移動する。
はてなダイアリーならどこでもいいので、トップページ以外のところを開いて、やはりページ最下部でスペースキーを押すと、次のページへ移動する。
何をしているかというと、head内で次の文書が指定されているならその文書へ、そうでないなら、恐らくページ下部付近にある、いかにも次のページっぽいリンク先へ移動するようになっている(はず)。
最初の例だと、URLは1459.htmlで、次のエントリは1461.htmlなので、URLを見て単純に数字を足しているというわけではないようだ。
Firefoxだったら、わざわざアドオン入れてそーいった類のリンクを表示したり、アクセスキーがあるなら、キーを押すことでエントリの移動を行えるけど、Operaならそーいった事を全く気にせずに、スペースキーで読みながら、そのままの操作で自然と次のページへ移動することができる。ページがheadによるナビゲーションに対応していようがいまいが関係無く。
通常はスクロール。最下部に来ると意味が無いからそのままページ移動にしてしまえ、と。
なんという素晴らしいインターフェース。心洗われました。
補足
前後ページへのリンクすら存在しない、もしくはSUN値が足りないと見られないソースだったりすると、関係ないリンクを表示するなどして暴走するっぽい。
大抵のブログ及びブログツールなら対応していると思われるので、そこら辺は微妙に安心して使える。サイドバーが親の敵のように成長していなければ、だが。
追記
- リンク属性で指定された「次のサイト」を持つ
- リンクになっている文字列が登録されているものと同一のリンクがある
- 認証のページでWand機能にユーザ名とパスワードを登録してある
- 画像ファイルへのリンクがある
Opera解説編 2-10(FastForward & ReWind)
スペースキーの動作=FastForward、でもってこのような優先順位で動作するらしい。
4番の画像ファイルが気になったので試してみたが、ページ内に画像が複数ある場合、スペース連打で次々と画像を読み込んで表示してくれる。それはもう笑っちゃうくらい快適に。
・・・はっ! つまりこーゆーことか!
- ページ内画像が多い程スムーズに閲覧
- デフォルトでセキュリティがガチガチ
Operaはアダr
Info
- 投稿日
- 2006年10月30日
- タグ
- opera
- このエントリの固定リンク
- http://diary/log/1473.html
- ブックマークに追加する
-
- コメント
2006
1030
Tagsopera
ページの更新/中止ボタン
読み込みを中止しているのにさらに中止するわけがなく、更新中に更新したい時などは稀。ならばいっそのこと一緒にしてしまえ、と。これに限らず、自由にトグルボタンを作成できるのは素晴らしい。
ユーザーCSS
「@-moz-document domain」とかの絞込みが不可能なので、サイトというかドメイン毎に設定する必要がある。
これがめんどいので、ユーザースクリプトでドメイン名をbodyあたりにidで付加して、body#domainみたいな感じでCSSを書くのがよろしいのかな?
Operaは画像に弱い?
RSSリーダーでEngadgetあたりを200エントリ開くと、それなりに大きな画像を全て読み込もうとしてCPU使用率がうなぎのぼり。かなりでかい画像はひとつだけでもOperaキラーに。
とにかく画像に弱そうな気配を感じたので、常に画像をOFFにすることにした。あと、メモリキャッシュも多めに。
画像のON/OFF
Firefoxのimageprefでもそうなんだけどさ、img要素だけに適用とかできんのかね。background画像まで持っていかれるとサイトによってはひどいことになる。
あと、非表示にした画像でもサイズ指定されてたらそのサイズで枠を表示して欲しいとか思うわけですよ。widthとか無視してaltテキスト飛び出すのは勘弁してくれ。
JavaScriptのON/OFF
ブックマークレットぐらいは見逃してくれてもいいと思う。ここらへんは細かく設定できるNoScriptのほうが優秀だな。
https
証明書の確認ダイアログが出るのはいいが、セガダイレクトのカゴに入れた後のページで画像がhttps指定されているというトンデモHTMLで構成されており、証明書の確認ダイアログがブラクラの如く出現するので「以降全てを許可/無視」みたいなのが欲しい。
っていうかhttps以前に画像を絶対URLで指定するなとあれほど・・・
Widget
デフォルト動作のD&Dがキャンセルできないっぽい? すげー困ってるんだけど。とりあえずinput要素で対処。
あと、setPreferenceForKeyで設定した値って削除できない? 延々と蓄積されて困るんだが。
ポップアップのブロック
アニメーションやめれ。タブを50個ぐらい開こうとしたとき死ぬかと思った。
ユーザーエージェント
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ja) Opera 9.02
最後が余計。・・・これってバイナリ弄ると直せるのかしらん?
Google Docs & Spreadsheets
youtube寝取るのもいいけど、こっちもサポートしてくれ。
Info
- 投稿日
- 2006年10月17日
- タグ
- opera
- このエントリの固定リンク
- http://diary/log/1467.html
- ブックマークに追加する
-
- コメント
2006
1017
Tagsopera
Operaはiniファイルを弄ることで、右クリックメニューをカスタマイズすることができ、用意されたアクションを記述することでクリップボードを操作することもできる。
が、現在のページのURLだけとか、選択テキストだけとか、画像のURLだけ、といった風にコピーできるものが限定されてしまっているので、タイトル+改行+URLなんて取得は不可能。
使えねー! Opera超使えねー!
そこでopera_exを使うことで、かなり自由なスタイルでURLやらタイトルやらをクリップボードに入れられるわけだが・・・
opera_ex使ったら負けかなと思ってる
なんかねー使いづらいのよねー。テキストファイル用意しなきゃいかんし、ちょっと凝った加工もできないしー。
というわけで、opera_exに頼らずにクリップボードを操作する方法を模索した。
実験1 iframe+flash
右クリックメニューのアクションにjavascriptも記述できるので、iframe生成しつつローカルに保存したsetClipboard.swf仕込み済みHTMLを、取得したい情報をハッシュにまとめつつ開けばいけね?
- 結果
- セキュリティに引っ掛かるので無理。(やる前からわかってたけど)
実験2 新規タブ+flash
openで新規タブにHTML+ハッシュなローカルHTMLを開いてクリップボードに入れつつ即座にclose。
- 結果
- 実験1と同じ理由で無理竜
実験3 WindowsScriptingHostに渡す
渡した先ならIEを操作できるので、クリップボードが使える。これだ!
- 結果
- そもそもOperaからページタイトルが渡せません。本当にありがとうございました。
あー、opera_exってWinAPI使ってタイトルの文字列取ってるんだな。WSHは無理じゃん。
ざんねん! わたしのちょうせんは これでおわtt
%s - ローカルキャッシュのファイル名(フルパス)
Opera7 All Action in Japanese
それだぁぁぁぁぁ!
実験4 WindowsScriptingHostにもっと渡す
URLと一緒にキャッシュのパスも渡し、タイトルはキャッシュのHTMLからtitle部分を抜き出す。
- 結果
- 成功
まさかキャッシュのパスを渡せたなんてねぇ。まさに神の御業だ ブッたまげたがよォォォ・・・
しかもWSHなんで1ファイルで完結しながらJavaScriptやVBやRubyも使えるのでテキストの加工が容易。選択テキストをblockquoteしつつciteにURLとかも可能。
ただ、欠点が。
ひとつは、一瞬、スペック次第では1秒程Operaのフォーカスが離れるてしまう。裏でIEを呼び出しているからなんだが、まあ、これぐらいは。
次が問題で、文字エンコードをADODBに丸投げしていること。ぶっちゃけると、ページ次第ではタイトルに含まれる2バイト文字が化ける。となると自前で文字コードを判別すりゃいいわけだが、ものすごく手間がかかる。
あー、まあ英語圏で使うなら問題無いんでこれでいいや。化けたらソースを表示して自前で取るってことで。
operacopyurl.wsf
Info
- 投稿日
- 2006年9月6日
- タグ
- opera
- このエントリの固定リンク
- http://diary/log/1438.html
- ブックマークに追加する
-
- コメント
2006
0906
Tagsopera
Code Snippetsとはプログラムコードの断片を共有
するサイト。激しく使えるものから使い道に頭を悩めるようなものまで幅広く投稿されてるので暇を見て眺めていたわけだが、このサイトが思いのほか使い辛い。
何が使い辛いってコードが初期状態で展開されてるから、50行近くもあるコードがあると、ページがエラい高さになる。
というわけで、いっちょGreasemonkeyで見やすくしてみようじゃあないか、と思って作ったのがこれ。
codesnippets.user.js
何気にOperaにも対応。コードタイトル右端に展開用のボタンを表示。デフォルトは全部閉じた状態。展開した状態でダブルクリックすると閉じる。折角なんでサイドバーも閉じた。これで大分見やすくなったー。
微妙に手抜きっぷりが見え隠れしているのは、近い将来もっと見やすい形にサイト側が対応するだろうという見通しのものであり、決してめんどくさかった訳ではない。いやマジで。
本当はSleipnirのSeaHorseにも対応させようとしたんだけど
user.js設置する(alert仕込む)
↓
Sleipnir起動
↓
ページ開く
↓
alert出る
↓
user.js弄る(alert消す)
↓
リロード
↓
alert出る
↓
user.js削除する
↓
リロード
↓
alert出る
どうみてもメモリに読み込んでます。本当にありがとうございました。
つーことは、SeaHorse用に作る場合はブックマークレットかSleipnirスクリプトとして作成してから移植するしかないのか。超めんどー。・・・あー、今回はご縁が無かったということで。
んで、コード共有サイトなんだからボタン一発でクリップボードに入れられるようにしたいよな。というわけでflashファイルを利用してクリップボードへコピーしてくれるボタンを生成してくれるようにもしてある。
なんでdataスキームじゃないかというと、どうやらFlashPlayer9になってセキュリティ周りに変更が出たらしく、最小構成のHTMLにembedでdataスキームのsetClipboard.swfを指定したやつを開いても反応しなくなったのよ。というわけでエロい人解決法求む。
ファイル自体はこっちね。OperaかFirefoxを使って、右クリックメニューから保存。適当なURLで繋がる場所にアップロードしたら、スクリプトを開いて「var flashURL」部分にURLを入力すれば機能するようになる。
setClipboard.swf
Info
- 投稿日
- 2006年8月26日
- タグ
- firefox、opera、userjs
- このエントリの固定リンク
- http://diary/log/1432.html
- ブックマークに追加する
-
- コメント
2006
0826
Tagsfirefoxoperauserjs
っぽいことをする。
XMLHttpRequestがダメなだけで、iframeを使ってテキスト取得とかは可能。俗に言うIFRAMEHTTPRequest。もしくはHTTP.Push?
var iframe = document.createElement( "iframe" );
iframe.src = <ローカルファイル>;
iframe.onload = function( ) {
//読み込み完了時の動作
}
document.body.appendChild( iframe );
最小構成だとこなかじ。当然のことながら呼び出すコンテンツは同じドメインのものでないと、内部にアクセスした途端にエラーが返ってくる。
んで、XMLHttpRequestではないので色々と制限を受ける。
HTMLを読み込んだ時は、画像やらスクリプトやら諸々全てが完全に読み込まれてから初めてonloadが発生したり、POSTで取得できなかったり。(がんばればできるという話を聞いたが)
textやscriptを読むときは注意が必要。内部でpre要素に入れられつつ、[<>"&]が文字参照に変換されてしまっているので元に戻す必要がある。
var doc = <iframeオブジェクト>.contentWindow.document;
if( doc.doctype == null ) { //nullだとhtmlではない・・・らしい
alert( doc.body.innerHTML
.replace( /^<pre>|<\/pre>$/i, "" )
.replace( /"/g, "\"" )
.replace( /</g, "<" )
.replace( />/g, ">" )
.replace( /&/g, "&" )
);
}
else {
alert( doc.body.innerHTML );
}
外部のコンテンツはとりあえず取得できる。が、したらしたで今度は貧弱なDSの側で色々しなきゃいかん場合もあるので、ある程度はサーバーサイドと相談するのがいいかもしれん。
補足。試しにGoogleのHTMLソースを取得してalertさせたら、画面暗転してから(この時点で既に読み込みは完了してる)ソース表示まで10秒近くかかった。・・・そこまで負荷がかかるのか。(というか描画全般に弱いのかな?)
Info
- 投稿日
- 2006年8月1日
- タグ
- game、javascript、opera
- このエントリの固定リンク
- http://diary/log/1421.html
- ブックマークに追加する
-
- コメント
2006
0801
Tagsgamejavascriptopera