GreasemonkeyのunsafeWindow
- Greasemonkeyのコンテキストでは,unsafeWindow=ページでのwindowオブジェクト,window=wrapされたwindowオブジェクト
- すなわち,window.wrappedJSObject == unsafeWindow
- unsafeWindow経由で外からGreasemonkeyのAPIを叩けるので,危ない
ということなのか?
つまり,解決法としては
- wrapperオブジェクト経由でなんとかする(unsafeWindowを使わないので,安全)
- location.hrefに突っ込む(ページのコンテキストで実行されるため,GreasemonkeyのAPIが叩けないので,安全)
- GM_* = null;(GreasemonkeyのAPIが叩けないので,安全.…本当か?)
これであってる?
参考:
FirefoxとOpera対応のUser Scriptを書くときのunsafeWindow - os0x.blog
evalの第二引数とGreasemonkeyのunsafeWindowについて - sawatのブログ
SmartLDR更新 - 素人がプログラミングを勉強していたブログ