質問: お世話になります。 とあるHTMLの動的ページがあるのですが、 理由があって、HTMLを直接いじることができません。 ですが、ドキュメントタイプを宣言を → に変更したいと思っています。 (宣言を右側のに指定しないと、safariでtableが崩れるために、変えたいのです。) そんなことは無理なのかな・・・と思いつつの質問なのですが、 JavaScriptを使って、なんとかを取得することは可能でしょうか? 上記のJavaScriptは、外部ファイルで、の直上で読んでいます。 もしご存知の方がいらっしゃいましたら、ご教示いただけますと大変たすかります。 何卒宜しくお願いたします。
回答: 残念がら無理でしょう. なぜならJavaScriptが動作するには, そのファイルがWEBブラウザにおいてHTML文書として解釈済みである必要があるからです. (自分自身を書き換えることは出来ない) > > とあるHTMLの動的ページがあるのですが、 > > 理由があって、HTMLを直接いじることができません。 > > > であれば別途WEBプロキシを立ち上げ, その中でHTML文書型宣言を付与するようにし, WEBブラウザはこのWEBプロキシ経由でHTMLを取得するようにして下さい. 忘れていました. [https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_1.html]( https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_1.html) にあるとおり, Safari 11.1であれば**Service Worker**が使えるため, フェッチしたHTML文書を**WEBブラウザの背後で加工することが可能**です. 動作条件としてWEBサイトをHTTPSプロトコル環境下で稼働させる必要がありますが, **WEBプロキシを用意する必要がなくなる**ため検討する価値があります. (もっとも, バージョン要件が厳しいので, 無条件に採用することは難しいかもしれませんが)