Google Apps Script製のページを印刷できる拡張機能作った

これです。

https://chromewebstore.google.com/detail/google-apps-script%E8%A3%BD%E3%83%9A%E3%83%BC%E3%82%B8%E7%94%A8%E5%8D%B0%E5%88%B7/gacknebdjgldkfjibmbkkdbkihomoiaj

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を置き換えるとかいう、気分悪いやり方してました)

コード全貌はこちらです。

https://github.com/AkimeAki/Print-for-Google-Apps-Script-Page

バグ見つけたらTwitterとかに連絡くれるとありがたし!

https://chromewebstore.google.com/detail/google-apps-script%E8%A3%BD%E3%83%9A%E3%83%BC%E3%82%B8%E7%94%A8%E5%8D%B0%E5%88%B7/gacknebdjgldkfjibmbkkdbkihomoiaj