javascriptによる印刷ダイアログが起動しなくなった。

Mozilla Firefox のサポートフォーラムです。

モデレータ: Forum Moderators

9625

javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by 9625 »

タイトル通りですが、Firefox62.0にしてから
javascriptによる印刷ダイアログが起動しなくなりました。
ちなみに、クロネコヤマトのB2送り状発行システムです。
他のブラウザは問題ないので、Firefoxの不具合だと思います。
B2送り状発行システム動作条件はクリアしてるはずです。
何が原因かわかりますか?よろしくおねがいします。
mac OS 10.13.6です。
アバター
EarlgreyTea
記事: 4589
登録日時: 2014年2月22日(土) 00:59
お住まい: 北海道

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by EarlgreyTea »

9625 さんが書きました:javascriptによる印刷ダイアログが起動しなくなりました。
ちなみに、クロネコヤマトのB2送り状発行システムです。
ヤマト運輸の「送り状発行システムB2クラウド」のことでしょうか。
見たところ、ヤマト運輸と契約を結んだビジネスユーザー向けのサービスのようで、こちらで検証することができないようです。

状況がわかりかねるので
・セーフモードで試す
・新しく作成したプロファイルで試す
・トラッキング防止を「ブロックしない」にする
・セキュリティソフトを一時的に無効にする
といった月並みなアドバイスしかできないです。

ヤマト運輸の方に問い合わせしてみてはどうでしょう。
9625 さんが書きました:mac OS 10.13.6です。
ちなみに推奨環境は
Windows 7,8.1,10 / IE11,Firefox,Chrome
MacOS 10.12 / Firefox,Chrome
となっていますね。

つまり、推奨しているのは macOS 10.13 (High Sierra) が出る2017年9月以前の環境での動作確認と考えられ、
だとすると Firefox Quantum についてはあまり考慮してないと思ったほうがよさそうです。
96253

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by 96253 »

EarlgreyTeaさん回答ありがとうございます。
「送り状発行システムB2クラウド」の事です。たしかに10.12…でした。よく見もせずにすみませんでした。
firefoxののアップデートまで他のブラウザで対応します。
ありがとうございました。
アバター
pal
Moderator
記事: 1905
登録日時: 2011年4月06日(水) 10:16
お住まい: Tokyo

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by pal »

OSのバージョン以外でひとつ。

「Firefox62.0にしてから」ということですが、Firefox 61など旧バージョンでのご利用はあったのでしょうか?
[Desktop] Windows 10 pro (64bit) / 16GB RAM
アバター
EarlgreyTea
記事: 4589
登録日時: 2014年2月22日(土) 00:59
お住まい: 北海道

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by EarlgreyTea »

96253 さんが書きました:firefoxののアップデートまで他のブラウザで対応します。
私が申し上げたのは、Firefox が macOS 10.13 に対応していないという意味ではありません。

サイトの推奨環境が macOS 10.12 なので、その当時の Firefox のバージョンつまり Firefox 56以前での動作確認となるので、最新バージョンのことは考慮されていないのでは?ということです。

ヤマト運輸に問い合わせをしてみてはどうでしょう。
「推奨環境にてご利用ください」と返されそうですがダメ元ということで。
96254

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by 96254 »

EarlgreyTeaさん

あ、理解しています。Firefox自体は10.13.6に対応していますね。
サイトの動作の問題ですよね。一回問い合わせてみます。
セーフブートなどアドバイス頂いた一通りは試しましたが、やはり印刷は出来ないようです。

palさん

回答ありがとうございます。

そうですね、以前のバージョンでは印刷できました。
アバター
pal
Moderator
記事: 1905
登録日時: 2011年4月06日(水) 10:16
お住まい: Tokyo

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by pal »

96254 さんが書きました:以前のバージョンでは印刷できました。
正確にはどのバージョンでしょうか?
仮に原因調査するにしても、どこまでできていたのかが正確にわからないことには何とも。
[Desktop] Windows 10 pro (64bit) / 16GB RAM
96257

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by 96257 »

palさん

情報が不明瞭ですみません。
バージョンは61でした。自動更新にしているので、現行の直前のバージョンです。
アバター
EarlgreyTea
記事: 4589
登録日時: 2014年2月22日(土) 00:59
お住まい: 北海道

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by EarlgreyTea »

Firefox 61→62 にアップデートして発生するようになった現象ということですね。
興味深い問題ですが、個人ユーザーには手が届かないサービスのため検証できず残念です。
ヤマト運輸にはFirefoxのバージョンに関する情報提供をお願いします。
アバター
pal
Moderator
記事: 1905
登録日時: 2011年4月06日(水) 10:16
お住まい: Tokyo

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by pal »

96257 さんが書きました:palさん

情報が不明瞭ですみません。

バージョンは61でした。自動更新にしているので、現行の直前のバージョンです。
というと、以前動いていたのはFirefox 61.0.2でしょうかね。

とりあえず、ブラウザーコンソールにエラーが出ないかご確認を。
https://developer.mozilla.org/ja/docs/T ... er_Console
これを開いたまま、印刷ダイアログを開いてみてください。
開くだけで大丈夫です。
[Desktop] Windows 10 pro (64bit) / 16GB RAM
96258

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by 96258 »

EarlgreyTeaさん

ありがとうございます。現在の状況をヤマト運輸へ報告しようと思います。
おっしゃった通り、推奨環境でお使いくださいと言われそうですね…。


palさん

コンソールの内容です。


[!]ユーザー体験に対して好ましくない影響があるため、メインスレッドでの同期 XMLHttpRequest は推奨されません。詳しくは http://xhr.spec.whatwg.org/ を参照してください。 main-e042100170.js:8:14035

[!]will-change のメモリー消費量が多すぎます。予約サイズの制限は document の表面領域の 3 倍の値です (1041612px)。予約サイズを超えた場合、document で発生するすべての will-change は無視されます。 print_check.html

PDF a1ec497496e2d091ca31e48ab2ed [1.7 Document Parser 2.2.4.4(Build 20160524160327) / SVF for Java Print 9.2 (Revision 9.2.4.24 build 201701131840)] (PDF.js: 2.0.625)



コンソール冒頭の [!] ←これは三角の警告マークの代わりです
ラベル印刷をしたい顧客にチェックを入れ、印刷内容の確認ページに遷移した時に [!]のエラーが出ます。
「メモリー消費量が多すぎます」とありますが、1件だけテスト発行しようと試みた状況です。
100件以上は普段から印刷しています。


「PDF〜」のくだりは、その顧客ラベルの発行開始(印刷)ボタンを押した後に出てきました。
エラーというより、処理している感じで、この段階で止まってしまっているようです。
普通ならこの段階で印刷ダイアログが出てきて、給紙トレーやカラーの選択をします。
偶然的通行人

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by 偶然的通行人 »

横から失礼します。
9625 さんが書きました:タイトル通りですが、Firefox62.0にしてから
javascriptによる印刷ダイアログが起動しなくなりました。
Firefox 62.0 で追加・変更・廃止になった機能が影響して、サイト側の投げてくる JavaScript が意図通りに動作しなくなっているのかもしれません。
(参考)
・Firefox 62 サイト互換性情報
www.fxsitecompat.com/ja/versions/62/

考え方の面で関連するかもしれない内容なので、よかったら下記の別トピックも参考にしてみてください。
(参考トピック)
・62.0にすると特定のサイトが正しく表示されない
forums.mozillazine.jp/viewtopic.php?p=62389#p62389

96253 さんが書きました:firefoxののアップデートまで他のブラウザで対応します。
それも選択肢のひとつ(*) で、当面はそれで問題を回避できると思います。

もし、本件の原因が Firefox のバグだった場合、そのことが開発陣に伝われば、新しいバージョンで修正される可能性は十分あります。
しかしながら、Firefox 62.0 で入ったのがバグでなく計画的どおりの仕様変更だったら、Firefox の新しいバージョンでも修正されることはないでしょう。そのような場合は、サイト側の JavaScript の修正が必要になると思います。
96258 さんが書きました:現在の状況をヤマト運輸へ報告しようと思います。
ヤマト運輸のサポート窓口に、本件の事象を「報告」あるいは「調査依頼」しておく意味は大きいと思います。
推奨環境に Firefox も含まれているサイトなので、Firefox 側の変更点にも目を向け、それなりに対応してくれるのではないでしょうか。


(*) 本件が Firefox 62.0 に固有の問題であるなら、主に法人向けに提供されている ESR 版 60.x を使う手もあると思います。
(参考)
・法人向け情報 | Mozilla Japan コミュニティポータル
www.mozilla.jp/business/

ESR 版は、およそ 1 年間のサイクルでメジャーバージョン(=>)に更新されますが、その間は通常版のサイクルでマイナーバージョン(->)が提供されます。
…… 52.7.0 -> 52.8.0 -> 52.9.0 => 60.0.0 -> 60.1.0 -> 60.2.0 ……
ESR 版を使う上での注意点は、メジャーバージョンアップのときに大きな変化がやってくることです。
次期メジャーバージョンがナイトリーやベータなどの開発版の時期、および移行期間(新旧バージョンが2サイクル分重複サポートされている間)にテストをおこなっておけば、変更点や新機能の状況を把握して次期 ESR 版に移行できるでしょう。

ストレートな解決策ではありませんが、以上です。的外れな話になっていたらすみません。


(おことわり)
現在、健康上の制約により不定期な書き込みしかできなくなっています。すぐに応答できない場面がかなり多くなりますことを、ご容赦ください。
96259

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by 96259 »

偶然的通行人さん



詳しく解説頂きありがとうございます。先程「報告」という形でヤマト運輸へメールをしました。

Firefoxの仕様変更だと言うことですが、私もそうなのかなと思います。




私はwebにものすごく精通しているわけではないのですが、先程少し原因を探ってみました所

これが原因かどうかはわかりませんが、

「印刷」ボタンを押すと以下のような隠し?iframeが生成されるようで、
そのiframe内のコンテンツが印刷内容としてダイアログが起動する仕組みのようです。


<iframe id="printReview" src="xxxxxxxxxxxx一応伏せますxxxxxxxxxxxxxxxxxx" scrolling="no" marginwidth="0" marginheight="0" style="border:none;" width="1" height="1" frameborder="0"></iframe>

どういう仕組みなのかはわかりませんが、属性「height="1"」を開発ツールのインスペクターで削除したら印刷ダイアログが起動しました。



隠しiframeから印刷へのプロセスが、記述的に62.0では対応しなくなったようです。(mac版では)



詳しくないくせに偉そうにすみません….
アバター
EarlgreyTea
記事: 4589
登録日時: 2014年2月22日(土) 00:59
お住まい: 北海道

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by EarlgreyTea »

96259 さんが書きました:詳しくないくせに偉そうにすみません….
いえいえ、そんなことはありません。
何しろ、こちらは件のシステムをいじることも画面を見ることすら出来ないわけですから、96259 さんからの情報だけが頼りです。
96259 さんが書きました:印刷」ボタンを押すと以下のような隠し?iframeが生成されるようで、
そのiframe内のコンテンツが印刷内容としてダイアログが起動する仕組みのようです。

<iframe id="printReview" src="xxxxxxxxxxxx一応伏せますxxxxxxxxxxxxxxxxxx" scrolling="no" marginwidth="0" marginheight="0" style="border:none;" width="1" height="1" frameborder="0"></iframe>

どういう仕組みなのかはわかりませんが、属性「height="1"」を開発ツールのインスペクターで削除したら印刷ダイアログが起動しました。
手がかりが出てきましたね。
ちなみに、「送り状発行システムB2クラウド」へのアクセスと、iframe内のsrcのURLでは、それぞれ http と https どちらになってるのでしょう。
962510

Re: javascriptによる印刷ダイアログが起動しなくなった。

投稿記事 by 962510 »

EarlgreyTeaさん


生成されたiframe内のURLはheader内で設定されており「<base href="resource://pdf.js/web/">」となっています。
印刷ダイアログが立ち上がらない状態でコマンド(コントロール)Pで印刷ダイアログを立ち上げ、
(印刷したいのはその画面ではなく、iframe内のコンテンツなので)キャンセルをすると
以下の警告ダアログが立ち上がります。


「resource://pdf.js のページから:
警告: PDF をプリントするための読み込みが終了していません。」


となります。

生成しているURLはhttpsだと思います。
jQueryでsrcにURLを挿入しているようです。

<iframe id="printReview" src="/b2/p/xxxxxxxxxxxxx_no=xxxxxxxxxxxxxxxxxx&fileonly=1" scrolling="no" marginwidth="0" marginheight="0" style="border:none;" width="1" height="1" frameborder="0"></iframe>


恐らく、以下(抜粋)の記述がそれだと思います。「.attr("src",i);」の「i」が見つけられませんでしたが、大量の記述内にあるURLは全てhttps:でした。

$("body").append('<iframe id="printReview" src="" width="0" height="0" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" style="border:none; visibility:hidden; display:none"></iframe>'),$("#printReview").attr("src",i);else if(n.indexOf("safari")>-1)$("body").append('<iframe id="printReview" src="" style="position: fixed; width:1%; height:1%; right:1px; bottom:1px; visibility:hidden;"></iframe>'),$("#printReview").attr("src",i);

※ソースコードのURLを公開したらヤマトさんから怒られそうなのでやめておきます。
返信する