{開発}{開発記録}{一段落}{一通り}{}{デライト}{WebP}{pdftoppm}{譜類添付機能調整}{譜類添付機能}(116)

{希哲17年4月5日の開発 K#F85E/E74C-3148}

譜類添付機能調整など。

細かい挙動調整終えてから PDF 埋め込み対応完了譜類添付機能全体として完成形言える状態になり,ようやくエクスポート機能実装移れる

3月24日の開発時点では,添付ボタン埋め込み記法ラスター画像JPEG, PNG, GIF, WebP扱える程度機能実装一段落としたが,SVG動画音声までの埋め込み含めて対応その他主要文書譜類対応添付代置子導入貼り付けドロップ対応更に PDF 埋め込み対応と,現時点やりたいこと一通りやってしまった一段落とは言ったものの中途半端感残りいまいちすっきりせずデライト公式での機能紹介出来ていなかった


PDF 埋め込み対応関してはPDF.jspdftoppm優秀だったおかげで意外とあっさり実装出来た特に PDF.jsviewer.html場筋PDF 譜類場筋組み合わせ<iframe>src 属性渡せばいいだけで,スクリプト側対応簡単だった

最初のページpdftoppmJPEG に,cwebpWebP変換,その画像クリック縦サイズ合わせた <iframe>置換し viewer.html読み込む読み込み中進捗表示viewer.html行ってくれるので,これだけ違和感なく軽快な PDF 埋め込み実現出来た一応,「(.pdf 添付ファイル)」の小書き輪結添えるようにしておいたPDF 埋め込みの様子


一つ添付譜類握接権限課題残した現状場筋分かっていれば誰でも握接出来るが,デライト性質上大きな問題ではないエクスポート機能譜類握接制御実装するのでそれを応用することにした。

{進捗記録}{進捗}{デライト}{Firefox}{Chrome}{希哲16年1月21日}{HTML}{分かる}{見過ごしてしまった}{内部処理}(57)

{希哲16年1月21日10歩 K#F85E/E74C-38B2}

進捗時限記録中略

領下手定め環境での開発者通類梱装がすっきりしたところで,<!DOCTYPE html> がなくて後方互換模動になっているという警告が出ていることに気付き,調査

結局FirefoxAutoPagerize AdvancedChromeAutoPagerize<iframe> 要素内に表示する HTMLDOCTYPE 宣言 が無いことによる問題だった。よく読めば拡張機能から出ている警告であることは分かるが,勘違い重なり気付くのに時間がかかった

まず,デライト出力するソースを見ると,以下のように不自然出力になっている。これは特に問題ではなかったが,ここでデライト出力に何か混入しているのかという勘違い発生した。

<!DOCTYPE html><html lang="ja-JP">

<head ...

ただ,試しにここを修正しても警告は消えないし,全知検索検索結果によって警告が出たり出なかったりする。ここで AutoPagerize Advanced問題かと気付きかけたところで,Chrome でも同じ警告が出ていることを確認。これで「拡張機能問題」という考えんでしまった。だいぶ前に Chrome にも AutoPagerize引装していたことを忘れていた

小一時間悩んだ挙句Firefox警告表示されている loading.htmlクリックしてみて正体分かった。これも一見内部処理関連っぽい名前なので見過ごしてしまった

何はともあれ,デライト問題がなくて安心した

{進捗記録}{進捗}{Firefox}{@win}{Aejs}{違了}{.length}{<iframe>}{握接}{希哲15年3月31日の開発}(41)

{希哲15年3月31日10歩 K#F85E/E74C-7B0E}

共有ボタン不具合修正

原因究明修正完了

小窓が開かない場合があることに気付いて調査を始めたが,間もなく AdSense が表示されている場合に @win事象聴取子を登録しようとした時の問題であることを突き止めた。Firefox では「Permission denied to access property "addEventListener" on cross-origin object」という違了が出ていた。

これは Aejs における既知の不具合で,昨年7月16日の開発記録では「根本的解決策を施すことが出来た」と書いているが,単に AdSense よりも Aejs を先に読み込むようにしただけで,Aejs の欠陥は残ったままだった。どこかで iframe 内に addEventListener() を仕掛けているらしいということまでは突き止めていたが,それ以上調査する余裕が無かった。

今回の調査で,@tgt_evt.bld..on() 内で対象の length を調べて添え字握接している所が問題だったことが判明した。@elm.bld 個体であれば問題ないが,@winwindow)でこれをやるとサブフレームに握接してしまうことになる。

単純に,対象が window であった場合は飛ばす処理を加えて解決した。

ずっと気になっていた気持ち悪い不具合解決したのは収穫だった。

{<iframe>}

{}