tips blog

ShadowboxのインラインコンテンツでHTML全体が表示

2015年5月20日

Shadowbox(3.0.3を使用)インラインコンテンツ(href=”#○○○”)表示で
指定したid部分ではなく、HTML全体が表示されてしまう。

【症状】
■アドレスに#○○が付いているとHTML全体が表示されてしまう。
■#○○○○の○○○○がidの頭から使われているときは現象は起きない(原因究明に役に立ちそう)
(例:http://xxxxxx.com#contentのとき<a href=”content1″ rel=”shadowbox”>だと正常に動作)

【原因】
■shadowboxバグ?仕様?

【解決】
未解決
■別ファイルでHTMLをつくり、iframeで読み込ませる

しかなさそうだが、
これでは解決にならないので動作するようにしたいが
shadowbox3.0.3.jsがプチプンプレッサ状態なので、コードチェックも出来ず。。

誰か生コードある人がいれば調べたいのでデータを!!

shadowbox.js内の下記を修正

if(content.indexOf(“#”)>-1&&content.indexOf(document.location.href)==0){return”inline”}

 ↓

if(content.indexOf(“#”)>-1&&content.indexOf(document.location.href.replace(/#.*$/,””))==0){return”inline”}

【原因】
shadowbox設定したaタグのhrefが、ページ内リンクの場合、”inline”設定になる
コードのようだったが
「ページ内」or「ページ外」をハッシュ込みのURLで判断しており
違うページだと認識し、ページ全体をiframeで表示させていた。

判断するURLをハッシュを削除したURLに変更した
document.location.href → document.location.href.replace(/#.*$/,””)

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です