那不是真正的 PHP 问题,而是更多的 javascript 问题。您可以通过在标签上添加rel='fancybox'
orclass='fancybox'
属性并使用基本功能来使用 fancybox 。a
然后它只会href
在 iframe 弹出窗口中打开该部分。如果您在新选项卡中打开链接,它将在新选项卡中打开该href
部分。
现在您还可以使用两个单独的链接。一个用于新标签/无 JS 链接,一个用于弹出窗口。为此,您只需将新标签链接添加为href
,因此默认行为是打开新标签页。
现在要让 fancybox 打开另一个页面,你可以做几件事。一种是创建一个完全不同的链接,另一种是在其fancybox 时将参数附加到链接。后者对于像图像这样的静态内容效率较低,所以我更喜欢第一个。
现在而不是常规的 JS 来打开 fancybox 做一些类似的事情:
<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