詳しい話は Opera のユーザーJavaScript は「.js」か「.user.js」かで実行されるタイミングが違う - m2O - チーム俺等におまかせするとして、結論を書くと。 OperaのUserJSはファイル名をuser.jsではなく、.jsにする DOMContentLoadedにaddEventListenerする 以上で、Greasemonkeyと同じタイミングで実行されます。 通常のonloadとの違いは画像などの読み込み完了を待たずに実行される点で、これが結構大きな違いになることが多々あります。 具体的にはこんな感じ。 // ==UserScript== // @name sample // @namespace http://ss-o.net/ // @include http://ss-o.net/* // @version 0.0 // ==/UserScrip