m2O

2008/06/16 (月)

nicovideo player lite2 をグリモンで使っている場合は更新をお願いします

|  nicovideo player lite2 をグリモンで使っている場合は更新をお願いします - m2O を含むブックマーク

ダウンロード

http://miya2000.up.seesaa.net/tmp/nicovideo_wnp_lite2.js

更新内容

unsafeWindow に WNP オブジェクトを持たせていたため、ページの script から GM_xmlhttpRequest 等の関数を実行できてしまう問題*1を修正しました。

修正方法

var MAIN = function() {
    ...
}

if (window.opera) {
    MAIN();
}
else {
    var script = document.createElement('script');
    script.setAttribute('type', 'text\/javascript');
    script.innerHTML = '(' + MAIN.toString() + ')()';
    document.getElementsByTagName('head')[0].appendChild(script);
    return;
}
トラックバック - http://orera.g.hatena.ne.jp/miya2000/20080616

2007/09/23 (日)

nicovideo comment viewer

|  nicovideo comment viewer - m2O を含むブックマーク

Opera でニコニコ動画のコメントを表示する user.js です。

nicovideo_comment_viewer_watch.js
nicovideo_comment_viewer_msg.js

イメージとしてはこんな感じです。(現在のバージョンでは少し見た目が違います)

f:id:miya2000:20070913002702p:image:w500

機能

  • window または iframe で表示
  • 自動更新機能
  • ソート

xml とか xslt とか dom とかごちゃごちゃやっています。特に xslt はかなり自己満足物で、おそらく正規表現でウネウネやった方がパフォーマンスがいいです。やってみたかったことをやってみたという感じ。

以下のページを参考にさせていただきました。ありがとうございます。

ニコニコ動画をダウンロードできるようになるGreasemonkeyスクリプトを改良(管理人日記) - むぅもぉ.jp
http://muumoo.jp/news/2007/08/06/0nicovideodownloader.html

--

GreaseMonkey

nicovideocommentviewerwa.user.js
nicovideocommentviewerms.user.js

大体はそのまま動いたんですが、妙なことに XMLHttpRequest#open の実行時に以下のエラーが起こっていました。

Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.open]
file:///C:/path/to/gm_scripts/nicovideocommentviewerms.user.js
Line 129

詳しい原因はわからないですが、以下のページを参考に、setTimeout で実行するようにするとエラーが起こらなくなりました。

たしかに日本語の情報が他に見つけられなかったので非常に助かりました。ありがとうございます。

--

v1.1.0

  1. メッセージサーバーのURL変更に対応。
  2. 最大化表示時に見えたままになっていたので、表示位置を少し変更。
  3. その他、フォントとかいろいろ。

XenophiasXenophias2007/09/26 00:04泣く子も黙る超絶CSSerの私が来ましたよ

1.縦スクロールバーが2本の件について

スキンのせいではなくて仕様です。私は文字が小さいのとストレスがたまるので、デフォで大きくしてあります。なので、文字が大きくなってしまいスクロールバーを必要としたのではないかと思います。本来ならばデフォルトに戻すべきでしたが、うっかりしていました。
あまり気にしないでください。

2.TBについて

う~ん、なんかTBって私は苦手なんですよね。つけていいのか悪いのかよく分からないですから。全部のサイトにいいとか悪いとか書いてくれたらいいのに…。
つけてもいいということでしたら、次回からバシバシつけたいと思っています。

3.CSSについて

いやね、あの動画の上の広告を消そうとすると、私にはどうしてもマイナス指定しか思い浮かばないんですよ。動画に埋まっていますからね。何とかしたいとは思っているのですが、なかなか上手いきません><
またいいアイディアが浮かんだら、チャレンジしてみたいとは思っています。

miya2000miya20002007/09/26 10:53「超絶~」は誉め言葉なのでw
> デフォで大きく
なるほど。スクロールバーは苦労した点なので気になってしまいました。
> いいとか悪いとか
受け付けてる時点でいいということなんじゃないでしょうか。気後れする気持ちもわからなくはないけれど、それなら最初から言及しないというのが自然な振る舞いかと思います。
> マイナス指定しか思い浮かばないんですよ。
そうですね。それしかないと思います。
iframeでゴニョゴニョというアイデアはあるんですが、CSSの範囲を越えてしまいますね。

2007/03/31 (土)

flash 上でマウスジェスチャーできるようにする user.js 3(Firefox 2.0.0.3+)

|  flash 上でマウスジェスチャーできるようにする user.js 3(Firefox 2.0.0.3+) - m2O を含むブックマーク

Firefox 2.0.0.3 からは embed 要素に wmode="opaque" 属性があっても flashコンテキストメニューが表示されるようになったようなので対応しました。

GreaseMonkey
enablemousegesture.user.js

この変更によって名前と処理内容が合わなくなってしまうので、「flashaddwmode」から「enablemousegesture」に変更しました。前のは削除してください。

操作が少し変わりまして、

  1. クリックコンテキストメニュー復帰(movie は止まらない)
  2. ダブルクリックで wmode を削除(movie は最初から)

としています。

--

やっていることは簡単で、前回の「wmode="opaque" を付加」した後に透明 div を被せているだけです。
div を被せたことで wmode は不要のように思えますが、wmode が無いと flash は z-index を無視して最前面に出てくるので div を被せることが出来ないのです(これは Opera も同じ)。

あともうひとつ面白い挙動がありまして、被せる div の position を absolute でなく fixed にすると、opacity に関わらず flash の画面を覆ってしまいます。変なの。

nanasinanasi2008/06/02 23:54mixi動画上ではマウスジェスチャーが出来ないのですが、
なんとか改善してもらうことは可能でしょうか?

miya2000miya20002008/06/03 01:19すみません。mixiのアカウントを持ってないので確認のしようがありません。申し訳ないです。
が、どうなんでしょ? mixi動画というのは flash ですか? それならなんとかなるかもですが。

Yasaiseikatsu100Yasaiseikatsu1002008/11/09 00:45flashをダブルクリックしてもmovieが最初から再生されないようにしたいのですが、
スクリプトの次の部分を削除すればいいでしょうか?

el.addEventListener('dblclick',function(){ // remove wmode (and restart movie).
recovery();
el.removeEventListener('dblclick',arguments.callee,false);
},false);

miya2000miya20002008/11/09 08:01はい、それでいいですよ。

events1227events12272009/11/11 00:46Firefox3.5.5でも動くバージョンを作成していただけないでしょうか

miya2000miya20002009/11/11 07:09id:events1227 なんてことでしょう! しらべてみますね。

events1227events12272009/11/12 02:08お手数ですが他に検索しても作ってる方がいらっしゃらないので、よろしくお願いします。

miya2000miya20002009/11/12 07:27id:events1227 あれ、こちらでは動作しているように見えます。例えば http://www.adobe.com/jp/products/flashplayer/ 等。
特定のサイト・環境で動作しないということであれば教えてください。
または他のGreaseMonkeyスクリプトと干渉して動作していないのかもしれません。こちらで再現しないとちょっと対応は難しいですね。

events1227events12272009/11/12 16:45どのサイトでもダメですね。
「ダブルクリックでmovieを最初から」だけ機能します。
使ってるジェスチャーはFiregestureで
他に入れてるスクリプトはAutopagerizeとGreased Lightboxだけです。
未だにwindows2000使ってるせいか、他のアドオンと干渉してるかですかね・・・。ありがとうございました。

トラックバック - http://orera.g.hatena.ne.jp/miya2000/20070331

2007/03/15 (木)

flash 上でマウスジェスチャーできるようにする user.js 2

|  flash 上でマウスジェスチャーできるようにする user.js 2 - m2O を含むブックマーク

Opera の embed 要素以外は作り直さなくても wmode が反映されることに気が付いたので書き直しました。元に戻す機能も加えてます。

<変更点>

  1. Eolas 特許対応
  2. ダブルクリックで元に戻す機能の追加
  3. 無駄な処理の削除

その結果 OperaGreaseMonkey ではかなり異なる処理になったために別にしました。

Opera
flashaddwmode.js
flash_enable_mousegesture.js

GreaseMonkey
flashaddwmode.user.js

Opera のが汚いなあ。
あと YouTubeFirefox の方が動作がキビキビしてて快適。ウチだけかもしらんけど。

--

Opera では YouTube で movie をロードしている間にダブルクリックすると「Loading」で止まっちゃいますね*1。いろいろ試したけどどうしようもないんで、YouTubeFirefox をお勧めします。

--

Firefox 2.0.0.3 では出来なくなってしまいました(wmode=opaqueでもコンテキストメニューが出るようになりました)。

対応しました。

--

Opera 9.5 では出来なくなってしまいました(wmode=opaqueでもコンテキストメニューが出るようになりました)。

対応しました。

--

v1.1.0

  • ファイル名を変更(古いのは削除してください)。
  • 既に wmode が設定されている場合は何もしない、等。

*1:embedをDOMツリーから外してもロードが止まらない感じ。バグ?