Home / Diary / タグ: opera
ページの更新/中止ボタン
読み込みを中止しているのにさらに中止するわけがなく、更新中に更新したい時などは稀。ならばいっそのこと一緒にしてしまえ、と。これに限らず、自由にトグルボタンを作成できるのは素晴らしい。
ユーザー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://bmky.net/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://bmky.net/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://bmky.net/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://bmky.net/diary/log/1421.html
- ブックマークに追加する
-
- コメント
2006
0801
Tagsgamejavascriptopera
widgetからOperaを操作か、無理ならアクティブなタブのwindowオブジェクトにアクセスさせれ! ってな期待を込めて弄ってたけど、どっちも無理。単体htmlとして動作させなきゃいかんらしい。
ってゆーか、これってGoogle Gadgetでもいいy
・・・せめてwindowだけでもアクセスできるようにして欲しいよなー。そうすりゃなんちゃってDOM Inspectorとか作れるのにさー。
Info
- 投稿日
- 2006年6月17日
- タグ
- opera
- このエントリの固定リンク
- http://bmky.net/diary/log/1396.html
- ブックマークに追加する
-
- コメント
2006
0617
Tagsopera
サンプルページ(Opera専用、別ウインドウで開く)
OperaはstyleSheetsオブジェクト等、スタイルシートを直接弄れるプロパティが存在しないので、グローバルなスタイルを変更するのは、既存のcssファイルを追加する以外は不可能だった(ハズ)。
そこで、動的に変更したいスタイルをデータスキームに変換してcssファイルとして追加することで、動的にスタイルを変更させてみた。
欠点は現在の値を読み取れないこと。別途適当なオブジェクトを作成して、追加する度にそのオブジェクトにも反映させるなどして、自分で見るしかない。また、追加しまくるとどんどんメモリを食うと思うので、適当なところで一旦削除する必要があると思われる。
Opera9見てると、そのうちdocument.styleSheetsが追加されそうな雰囲気だが、まあそれまでの一時しのぎってことで。
Info
- 投稿日
- 2006年4月18日
- タグ
- css、opera
- このエントリの固定リンク
- http://bmky.net/diary/log/1368.html
- ブックマークに追加する
-
- コメント
2006
0418
Tagscssopera