modxロゴ

Modx BaseURL Same-Page-Link Fix で特定のアンカーだけ相対パスを渡さない

仕事で他の人が作成したページをCMS(Modx)化してるのですが、その中でイメージマップにオンマウスすると小窓で拡大画像が表示されるというJavaScriptが仕込まれている部分がありまして


<map name="Map" id="Map"> 
<area shape="poly" coords="**,**,**,**" href="#画像のID" />
</map>

の様なソースで「#画像のID」に指定されたIDを振られた画像をページの読み込み時に
“display:none”
で隠しておいて、オンマウスした時にそのIDの画像を小窓で表示するものでした

Modxに通常はページ内のアンカーが有効になるように
「BaseURL Same-Page-Link Fix」プラグインをいれてるので
そのままModxに移植すると


<map name="Map" id="Map"> 
<area shape="poly" coords="**,**,**,**" href="ベースURLからの相対パス?id=**#画像のID" />
</map>

みたいなBaseタグを元にページの相対パスが「#」の前についてしまい、今回の場合では正しい画像のIDを渡す事が出来ませんでした。

でJavaScriptを弄るか、「BaseURL Same-Page-Link Fix」プラグインを弄るかいろいろと考えてたら「BaseURL Same-Page-Link Fix」のソースコードにはhrefのパラメーターを「’」で囲んだ時、「”」で囲んだ時の振り分けが出来るとかいてあり、今回の場合は「’」で囲んで無事「#画像のID」をそのまま渡す事が出来ました^^。