こんにちは、お世話になってます。Operaでは、そのままだとGmapがないといかいうエラーで動きません。そこでインターネットで検索したところ、googlsmapAPIをjavascriptでダイナミックにロードするのでなく、スタティックにロードすれば良いというのを見つけました。そこで、後記のようにtemplates/mygmap_index.htmlのjavascriptの部分を修正し、mygmap_loader.jsを使わないようにしてみました。これでOperaでも動くようになりましたし、firefoxでも問題なさそうです。ただ、mygmap_loader.jsの中のロジックを無視してしまっている訳で何らかの副作用があるのではないかと思っています。(mygmap_loader.jsで何をしているのかどうも理解できてません)時間のあるときにでも回答いただければと思っています。よろしく、お願いします。 <script type="text/javascript"> //<![CDATA[ var mygmappath = '<{$smarty.const.XOOPS_URL}>/modules/mygmap/'; var mygmap_API = "<{$mygmap_API}>"; var useUDAPI = <{$mygmap_use_undocAPI}>; var mygmap_map; var iconpath = mygmappath + 'images'; var myGmapMiniMaps = new Array(); var myGmapMiniMap_idx = 0; //]]> </script> <script src="http://maps.google.co.jp/maps?file=api&v=1&datum=wgs84&key=<{$mygmap_API}>" type="text/javascript"></script> <script src="<{$smarty.const.XOOPS_URL}>/modules/mygmap/mygmap.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ window.onload = new Function("myGmapLoad();"); // //]]> </script> <!--<script src="<{$smarty.const.XOOPS_URL}>/modules/mygmap/mygmap_loader.js" type="text/javascript"></script>-->
<script type="text/javascript"> //<![CDATA[ var mygmappath = '<{$smarty.const.XOOPS_URL}>/modules/mygmap/'; var mygmap_API = "<{$mygmap_API}>"; var useUDAPI = <{$mygmap_use_undocAPI}>; var mygmap_map; var iconpath = mygmappath + 'images'; var myGmapMiniMaps = new Array(); var myGmapMiniMap_idx = 0; //]]> </script> <script src="http://maps.google.co.jp/maps?file=api&v=1&datum=wgs84&key=<{$mygmap_API}>" type="text/javascript"></script> <script src="<{$smarty.const.XOOPS_URL}>/modules/mygmap/mygmap.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ window.onload = new Function("myGmapLoad();"); // //]]> </script> <!--<script src="<{$smarty.const.XOOPS_URL}>/modules/mygmap/mygmap_loader.js" type="text/javascript"></script>-->
mygmap_loader.jsの存在自体の意味合いは2点あります1.MyGmapのminimapブロックを用意したため、複数の地図を描画する可能性が出て来ます。 で地図を表示するときに、一回だけgmapのAPIをロードする必要が出てきました。 そのため既にロードしたかどうかをJavaSciriptにて判定し、動的にロードするようにしています。 もし、この方法が気に入らず、さらにminimapブロックも表示したい場合は、 MyGmapのテンプレートでなくXOOPSのテーマ内でスタティックにロードすれば良いかもしれません。2.XOOPSの幾つかのモジュールでは、window.onload で実行するものがあります。 WordPressのSPAWやPukiwikiModのコメント入力域とかがそれにあたります。 これもこの時にMyGmapのブロックが表示されていて、MyGmapでwindow.onloadを 占有してしまうと、たのモジュールでの入力がうまく動かなくなります。 よって、すでにwindow.onloadが定義してある場合に、その処理とMyGmapのLoad 処理を両方とも実行するためのロジックがmygmap_loader.js内に記述してあります。よって、もしminimapブロックを使用しないのであれば、 fanrun7さんの修正でも問題ない事になります。
nobunobuさんなるほど、疑問が解決しました。とりあえずはminimapもwordpressのSPAWもつかっていないのでこのままで行くことにします。この問題はもしかすると、cubeの枠組みで対応する課題かもしれませんね。早速の回答、どうもありがとうございました。
nobunobuさんその後、他をいじっているうちに、mygmap_loader関係を元にオリジナル状態にしてもOpera9.01で動くようになってしまいました。何か、自分のミスであったのかなと思ってます。ただし住所や駅名入力での検索は、mygmap_loader関係がどちらの状態でも動かないようです。特にエラーコンソールには関係しているメッセージもありません。とりあえず状況のみお知らせしときます。お騒がせしました。
このプログラムは KENT 氏の yybbs を xoops(PHP) に移植したものです - KENT -