YouTubeやニコニコ動画のFlashにフォーカスを合わせた状態でホイールスクロールが可能になるグリモン
Windowsユーザ限定の不具合に対処するエントリー。Firefox2だと問題無いのになー。
// ==UserScript== // @name FlashWmode // @namespace http://d.hatena.ne.jp/Cherenkov/ // @description http://userscripts.org/topics/3090 // @include http* // ==/UserScript== (function(){ var ems = document.getElementsByTagName('embed'); for (var i=0; i < ems.length; i++) { var em = ems[i]; if ((em.getAttribute('wmode') == null) && (em.getAttribute('type') == "application/x-shockwave-flash")) { var ep = em.parentNode; if(ep.tagName.toLowerCase() == 'object') { var prs = ep.getElementsByTagName('param'); for(var j=0; j < prs.length; j++) { if(prs[j].name == 'wmode') { return; } } em.setAttribute('wmode', 'opaque'); ep.insertBefore(em, em.nextSibling); } else{ em.setAttribute('wmode', 'opaque'); ep.insertBefore(em, em.nextSibling); } } } })();
wmodeを適用することによってスクロールが可能になる→wmodeを動的に設定する方法
displayをnone/blockすると、Flashの配置がずれるサイトがあったのでinsertBeforeにした。
インストール
FlashWmode.user.js - userscripts.org
更新履歴
2009年4月11日 - objectタグが存在して既にwmodeが設定されていると表示されないものがあったので条件を加えた。
注意
id:javascripterのNicoVideoAutoPlayなどをインストールしてある場合は「ユーザースクリプトの管理」でこのスクリプトを先に実行されるようにしておくこと。
サーバーサイドの対策案
こちらのページの http://mfria.blog106.fc2.com/blog-entry-270.html 赤線の部分を実装するとよくなるのかな?ニコニコの中の人(id:koizuka)は当然検討したことがあると思うのでご意見を聞きたい。
感想
不具合が出ないかしばらく観察してみる。
やっぱ「displayをnone/block」だと表示されなくなるページあるな。
transparentとopaqueで影響が少ないのはどっちだろう。