WordPress であるプラグインをインストールしたら、リンクが開かなくなった際のトラブルシューティングに関するメモ。
「My Calendar」というプラグインをインストールしたところ、カレンダーの詳細表示(ポップアップ)の Google マップへのリンクが開かなかったので、コンソールを見たら以下のようなエラーが出ていた。
TypeError: o is undefined jquery....min.js (4 行目) ...pdateStatus("ready")}else t.updateStatus("error",o.tNotFound),r=e("<div>");retur...
「TypeError: o is undefined」で検索してみたら、クラス名や id 名が競合していたりすると起きる可能性のあるエラーのようだったので、取りあえず開かないリンクの要素を確認したら、その親要素に「map」というクラスが使用されていた。
<div class="url map"> <a class="external" href="http://maps.google.com/maps?z=16&daddr=36.559601,138....">
また、「Magnific Popup」というプラグインを利用するスクリプトでも「map」というクラスを使っていた。
HTML
<p><a class="map" data-mfp-src="" href=""><span class="show_gmap">Google Map を表示 </span><span class="address hide">東京都・・・</span></a></p>
jQuery
if($('a.map').length > 0) { $('a.map').each(function() { var address = $(this).find('span.address').text(); address = $.trim(address); address = address.replace(/\s+/g, '+'); var map_param = $.param({ 'q': address }); $(this).attr('data-mfp-src', "https://maps.google.com/maps?" + map_param); $(this).attr('href', "https://maps.google.com/maps?" + map_param); }); $('.map').magnificPopup({ disableOn: 600, type: 'iframe' }); }
「My Calendar」の出力するクラス「map」は変更できないので、「Magnific Popup」というプラグインを利用する HTML の要素とスクリプト(上記)のクラス名を「map」から「gmap」に変更したところエラーも消え、リンクも正常に開くようになった。