読者です 読者をやめる 読者になる 読者になる

GoogleChrome27でUserScriptがiframe内部で動作しない件

WebApp

GoogleChrome27でUserScript(拙作WebAborn)が動作しないことがあると報告いただきました。


「userscript Google Chrome 27」でGoogle検索したところ、海外サイトに回答が見つかりました。iframeの内部ではUserScriptが無効になるようです。

追記: 2013-07-11
Google Chrome 28では修正されました。以下の問題はありません。



こちらでもiframeテストしてみました。再現しました。テストURL: http://japaneseinput.web.fc2.com/xpath/iframeTest-top.html

f:id:itouhiro:20130528015606p:plain


原因

Google Chrome 27の記事
http://www.forest.impress.co.jp/docs/news/20130408_594976.html
を読むと、Google Chrome 27ではJavaScriptの実行について仕様変更されているので、それが原因と思われます。


http://stackoverflow.com/questions/16695289/userscript-no-longer-runs-on-iframes-in-chrome-27
の修正方法( %PROFILE%\Default\Extensions\ランダム文字列\1.0_0\manifest.json に「"all_frames" : true,」を追加)は試したけど効果ありませんでした。


一時しのぎの対処法ですがUser Stylesheetでiframeを表示しない方法を試したら、GoogleChromeの「履歴」「設定」なども表示されません。この対処法もよくないです。

結論

https://code.google.com/p/chromium/issues/detail?id=242710
に不具合報告が上がっているので、そのうちGoogle Chromeが修正されるのではないでしょうか。
修正されるまではGoogleChrome旧版か、Firefoxを使うのがよいと思います。


追記: 2013-07-11
Google Chrome 28で確認したところ、修正されていました。



最近のFirefoxはVer19くらいでまた軽くなりました。
一方GoogleChromeはVer22?からMacTypeも効果ないですし、 User Javascript のインストール手順も面倒になってきています。