tdiary / tdiary-contrib

tDiaryの非正規リポジトリ。どなたでもcommit可能です。commit権希望の方、まずはパッチ等をpull requestして下さい。
https://tdiary.org/
68 stars 46 forks source link

fix display error of google_map plugin #97

Closed 59t9 closed 9 years ago

59t9 commented 9 years ago

Temporary storage for outputting JavaScript is not properly organized. It may interrupt the execution of javascript, and not be able to display some maps.

59t9 commented 9 years ago

ruby 2.1.5、ブラウザはChrome 40.0.2214.91 mです。 おかしいと気付いたのは、デフォルトのWikiスタイルで書いていて、リファレンスの記述例のまま {{google_map '36.695952', '137.213677'}} {{google_geomap '羽田空港'}} と連続して書いてプレビューして登録したときでした。日記の一覧表示でマップが表示されなかったのです。 当時はブラウザの「検証」モードでは見ていなかったのですが、いま見てみますと、map apiでエラー発生して表示が止まるときがあります。 「ページのソースを表示」してみますと、マップを入れていない日にもjavascriptが出力されていました。加えてマップ配置先のDOMエレメントのID連番とも食い違いが見られました。例えば上記のように書くと0,1という連番になるはずですが、javascriptは0,1,2,3まで出てDOMエレメントは2,3だったのです。 一目見て、map api側というよりはこちらの問題だと分かる状況でした。 プラグインのソースを見て、一時記憶がクリアされるタイミングが曖昧なことに気付きました。プラグイン内で明示的にクリアすべきと考えました。 というところです。

tamoot commented 9 years ago

説明ありがとうございます。 私もたまに表示されない時があって何故だろうと考えていましたが、やっとわかりました。

コードを書いていた環境がCGI環境だったので連番の管理がたまたまうまく動いていたようです。

長年の謎が解けてスッキリしました。ありがとうございました(๑╹◡╹๑)