ページを印刷するChrome拡張機能のサンプル
Chrome拡張機能開発中に参考にしようとした公式サンプルが、最近のブラウザのバージョンに対応していなかったので調査した。
エラー内容
公式のこのページにある「Print this page」のリンク先から、zipファイルをダウンロードして中身をChromeに取り込むとこんなエラーが出る。
Unchecked runtime.lastError while running tabs.update: JavaScript URLs are not allowed in chrome.tabs.update. Use chrome.tabs.executeScript instead.
原因
chrome.tabs.updateのパラメータのupdatePropertiesにURLを指定できるが、そこにJavaScript URL(サンプルコードでいうと"javascript:window.print();"
)を指定できないため。
対策
エラー文にある通り、chrome.tabs.updateの代わりにchrome.tabs.executeScriptを使う。
この一行を
chrome.tabs.update(tab.id, {url: action_url});
以下のように修正する。
chrome.tabs.executeScript(tab.id, {code: action_url});