Operaでのjavascriptの動作の謎
skbooのペイントツールの修正をしていて起こったJavascriptの動作です。Opera10.63で確認したことでOpera11.00ではどうなのか不明です。
skbooのペイントツールは、javascriptライブラリのscript.aculo.usのdaragbleを使ってキャンバスウィンドウのドラッグアンドドロップで移動ができるようにしています。
Operaでペイントツールのページを開いたときに、なぜかキャンバスウィンドウなどがドラッグアンドドロップで移動できないのです。
きちんとは動作の確認の調査をしてはいませんが、原因はdaragbleに指定した要素の内包した要素に原因がありそうです。内包した要素の中にcssのスタイルでposition:relative;を適用していると、ドラッグアンドドロップできない感じです。
ただし、なぜかページを開いた後にブラウザのリサイズやスクロールなどの操作を行うと、ドラッグアンドドロップできるようになる。かなり不可解なり。ちなみにOpera以外のブラウザではこの現象は見受けられませんでした。
はっきりとした原因は調査しきれていないけど、余計なCssの指定や余計なDOMを減らして対応しました。
今回、SkbooのペイントツールはOperaとそれ以外で機能の違いがあり、ペイントツールに関連しているCssやJavascriptなどのファイルを別々にしていたのを共有化しようと作業をしていました。
別々に開発していることもあって、修正のたびに二度手間になっているところもあり、修正作業を何度もしていることもあって、バグを発生させてしまっているところもあるように思えたからです。
このようなことが起きるとなかなかすべてのブラウザで関連しているファイルを共有化していくのもなかなか骨のいるものになりますので、悩みますね。
- Category:雑記
- Tag:JavaScript / opera





