― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - javascriptによる印刷ダイアログが起動しなくなった。
作成者 メッセージ
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
偶然的通行人さん

>素早い応答ができなくて申し訳ありません。

いえいえとんでもないです。私こそ自分で質問しておいて、直ぐに返答できずに申し訳ないです。

私はごくごく軽くwebをかじったことがある程度なので、ほんとに詳しくはないのですが、
教えて頂いた記事を読んだ感じだと、「表示されていない <iframe>」はまさに今回の不具合に近いですね。

恐らくサイトの作りが古いのだと思います。
今どきはjQueryに依存しない記述が主流になりつつある印象ですが、(多分?)
「送り状発行システムB2クラウド」は全てではありませんが、随所でjQueryにて記述されています。
jQueryのバージョンは1.11.4みたいです。


●ヤマト運輸サポートセンターからメールの返答がありました。●

「印刷ができないとのことでございますが、Mac OSの場合、
Firefoxの更新により印刷ができなくなった可能性がございます。

ご不便をおかけし申し訳ございませんが、現在のところ、代替案として
ご案内が可能な印刷方法は、他ブラウザの「Google Chrome」 と
なりますので、Google Chromeにて、印刷をお試しいただけますでしょうか。」

だそうです。サポートセンターから管理者まで話が展開されているといいのですが…。
投稿記事 Posted: 2018年9月20日(木) 08:30
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
素早い応答ができなくて申し訳ありません。

ぼくも専門家ではないので、あまり偉そうなことはいえません。
でも、「三人寄れば文殊の知恵」という諺もありますし、何人かで知恵を出し合えば、まったく見当もつかなかったところから、(Mozilla かヤマト運輸かに)バグ報告できる程度には、問題点を絞り込んでゆけるかもしれません。

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

前便で紹介した「Firefox 62 サイト互換性情報」の中に、次のようなものがあります。
(参考)
・getComputedStyle() がスタイルを取得できない場合に null を返さないようになりました (影響あり) | Firefox サイト互換性情報
www.fxsitecompat.com/ja/docs/2018/getco ... retrieved/

このあたりの影響は考えられませんか?
シロウトのぼくには技術的な詳細はわかりませんが、極小の iframe の読み込みに関して制約があるという点に着目すれば、印刷という目的であっても iframe の読み込みがおこなわれる際に、何らかの影響が出ているのかもしれませんし......。
(新しいバージョンが公式リリースされるときは、大きなものから小さなものまで、たくさんのバグ修正が反映されますが、いきなり全部を対象に調査することは困難です。サイトの表示や動作に関する問題は、まず「サイト互換性情報」を調べ、そこからたどって先に進む道順がいいのかな、と思います。そのために提供されている情報ですし...。)

Firefox 61.0.x では動作し、62.0 にしたら動作しなくなった ―― という流れから考えれば、62.0 で入った変更が何らかの形で影響している可能性は否定できません。
その変更自体に誤りがあったのか、変更自体は正常でサイト側の古い記述に対応しなくなったのか、そのあたりが分岐点になると思います。
それを調べるためには、Firefox 62 の変更・修正点を意識しながら、当該サービスのソースコードを確認するのが手っ取り早いように思います。

ただ、これを確かめることは当該サービスの管理者でないとできないでしょう。
ヤマト運輸さんの社内の担当部署か外注先の企業かはわかりませんが、「送り状発行システムB2クラウド」を開発・保守・管理しているところはあるはずなので、そこの技術者に情報が伝われば、いまよりは先に進めるかと思います。
9625 さんとヤマト運輸さんの間で、交渉ないしは情報交換していただくのが妥当かな、と......。

とりあえず以上です。的外れな話になっていたらすみません。


(おことわり)
現在、健康上の制約により不定期な書き込みしかできなくなっています。すぐに応答できない場面がかなり多くなりますことを、ご容赦ください。
投稿記事 Posted: 2018年9月16日(日) 17:18
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
palさん

先程ユーザー登録をしました。申し訳ありませんでした。

クロスサイトリクエストフォージェリ

無知なもので、参考URLにて初めて知りました。
iframeが小さすぎて、Firefoxが怪しいと判断しているのでしょうか?
ウィルスソフトをオフにして試しましたが、印刷は出来ませんでしたので…。
投稿記事 Posted: 2018年9月14日(金) 15:30
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
注意


スレ主さんへ
毎回投稿者名を変えるのはおやめください。
同じ名前で投稿できないなら、ユーザー登録の上、都度ログインしてご利用ください。
投稿記事 Posted: 2018年9月14日(金) 11:18
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
96259 さんが書きました:
<iframe id="printReview" src="xxxxxxxxxxxx一応伏せますxxxxxxxxxxxxxxxxxx" scrolling="no" marginwidth="0" marginheight="0" style="border:none;" width="1" height="1" frameborder="0"></iframe>


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

https://qiita.com/YusukeHigaki/items/7b ... ca9be29818

これを見て思ったのですが、CSRF(クロスサイトリクエストフォージェリ)などの絡みではないでしょうか。
投稿記事 Posted: 2018年9月14日(金) 11:16
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
書き忘れました。

サイト自体のURLはhttpsです。
投稿記事 Posted: 2018年9月14日(金) 10:15
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
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&amp;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を公開したらヤマトさんから怒られそうなのでやめておきます。
投稿記事 Posted: 2018年9月14日(金) 10:14
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
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 どちらになってるのでしょう。
投稿記事 Posted: 2018年9月13日(木) 20:12
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
偶然的通行人さん



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

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版では)



詳しくないくせに偉そうにすみません….
投稿記事 Posted: 2018年9月13日(木) 17:33
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
横から失礼します。

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 版に移行できるでしょう。

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


(おことわり)
現在、健康上の制約により不定期な書き込みしかできなくなっています。すぐに応答できない場面がかなり多くなりますことを、ご容赦ください。
投稿記事 Posted: 2018年9月13日(木) 17:15
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
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〜」のくだりは、その顧客ラベルの発行開始(印刷)ボタンを押した後に出てきました。
エラーというより、処理している感じで、この段階で止まってしまっているようです。
普通ならこの段階で印刷ダイアログが出てきて、給紙トレーやカラーの選択をします。
投稿記事 Posted: 2018年9月13日(木) 14:19
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
96257 さんが書きました:
palさん

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

バージョンは61でした。自動更新にしているので、現行の直前のバージョンです。

というと、以前動いていたのはFirefox 61.0.2でしょうかね。

とりあえず、ブラウザーコンソールにエラーが出ないかご確認を。
https://developer.mozilla.org/ja/docs/T ... er_Console
これを開いたまま、印刷ダイアログを開いてみてください。
開くだけで大丈夫です。
投稿記事 Posted: 2018年9月13日(木) 08:37
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
Firefox 61→62 にアップデートして発生するようになった現象ということですね。
興味深い問題ですが、個人ユーザーには手が届かないサービスのため検証できず残念です。
ヤマト運輸にはFirefoxのバージョンに関する情報提供をお願いします。
投稿記事 Posted: 2018年9月12日(水) 19:22
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
palさん

情報が不明瞭ですみません。
バージョンは61でした。自動更新にしているので、現行の直前のバージョンです。
投稿記事 Posted: 2018年9月12日(水) 18:05
  記事の件名:  Re: javascriptによる印刷ダイアログが起動しなくなった。  引用付きで返信する
96254 さんが書きました:
以前のバージョンでは印刷できました。

正確にはどのバージョンでしょうか?
仮に原因調査するにしても、どこまでできていたのかが正確にわからないことには何とも。
投稿記事 Posted: 2018年9月12日(水) 10:33

All times are UTC + 9 hours


ページ移動:  
cron
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean