これは実際には PHP の問題ではなく、JavaScript の問題です。rel='fancybox'
タグにorclass='fancybox'
属性を追加a
し、基本機能を使用することで、fancybox を使用できます。次にhref
、iframe ポップアップでパーツを開きます。リンクを新しいタブで開くと、そのhref
部分が新しいタブで開きます。
これで、2 つの個別のリンクを使用することもできます。1 つは新しいタブ/no JS リンク用、もう 1 つはポップアップ用です。これを行うには、新しいタブ リンクを として追加するだけでhref
、デフォルトの動作で新しいタブ ページが開きます。
fancybox で別のページを開くには、いくつかの方法があります。1 つは完全に異なるリンクを作成することで、もう 1 つはそのファンシーボックスのリンクにパラメーターを追加することです。後者は画像のような静的コンテンツでは効率が悪いため、私は前者を好みます。
ファンシーボックスを開く通常のJSの代わりに、次のようにします。
<a href='newtab.html' data-fancylink='fancy.html' class='fancy'>open me</a>
<script>
$('.fancy').click(function() {
var href = $(this).data('fancylink');
if (href == undefined) {
href = $(this).attr('href'); //fall back to default when no fancylink
}
$.fancybox({
'autoScale': true,
'autoDimensions': true,
'centerOnScroll': true,
'type': 'iframe',
'href': href
});
});
</script>
編集(JFKによる):一般的な考え方は良いですが、上記の実際のスクリプトは次の微調整なしでは機能しません:
<script>
$(document).ready(function () {
$('.fancy').click(function (e) {
e.preventDefault(); // you still need to prevent default behavior
var href = $(this).data('fancylink');
if (href == undefined) {
href = this.href; //fall back can be simplified this way
}
$.fancybox({
type: 'iframe',
href: href
});
});
}); // ready
</script>
JSFIDDLEを参照してください