これです。
Google Apps Scriptでウェブページやアプリを作ったページを印刷したくなった方はいないでしょうか。
Google Apps Scriptで作ったページというのは、以下のようなメッセージが出てくるページなのですが、たまにこのページを印刷したくなることがあると思います。
しかし、どうやらGoogle Apps Scriptで作ったページは2段階のiframeの中に突っ込まれるせいで、スクロールが必要なページが正しく印刷できません。
それを印刷できる拡張機能くんです。
実装
仕組みはiframeの中でも拡張機能を実行するようにして、指定のiframeの中の時だけwindow.print()
する形です。思ったより簡単にできました。
const sandboxFrame = document.body.querySelector("iframe#sandboxFrame");
if (sandboxFrame !== null) {
return;
}
window.print();
(最初はiframeの中身の要素を丸ごとをbackground.jsに送ってルートのHTMLを置き換えるとかいう、気分悪いやり方してました)
コード全貌はこちらです。
バグ見つけたらTwitterとかに連絡くれるとありがたし!