我有一个基于WordPress的网站,使用Fancybox v.2在弹出窗口中显示帖子。显然,触发Fancybox的唯一方法是点击带有某些回调类的a
标记。
所以它是:
<a href="<?php echo home_url(); ?>/?p=<?php the_ID(); ?>" class="filmloop various fancybox.iframe">
但是,当我通过直接固定链接回到网站时,它会将single.php作为单独的页面加载而不会弹出窗口。因此,方法是将参数放在直接URL中,在返回重新加载页面时抓取它,将抓取的URL放入锚点并触发点击。唯一的问题是如何在获取参数后破解WordPress重新加载页面。
这是我所得到的,在single.php中:
function getURLParameter(name) {
return decodeURI(
(RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}
我抓住参数。然后:
window.location.replace("http://someurl.com");
这是棘手的部分。如何重定向页面时,如何存储参数供以后使用。这种思维方式是否可行,还有其他任何想法吗?
答案 0 :(得分:0)
您可以在页面加载时触发点击
$(document).ready(function{}
$('somelink').trigger('click');
});
这样你就可以在实例化FancyBox的页面上定位链接。
答案 1 :(得分:0)
试试这段代码。只需将?p = 123替换为#123并触发:D
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
if(document.URL.indexOf("#")==-1) // If hash not present in url
{
if(document.URL.indexOf("?p=") > -1){ // Check if url has parameter ?p=
var parameter = document.URL.split('?p=');
myhash = "#"+parameter[1];
window.location.replace(parameter[0]+myhash)
}
}
else {
// We got hash
// Now trigger
var n = document.URL.split('#');
href = "http://buffermow.com?p="+n[1];
findHref = 'a[href="'+href+'"]';
mylinktotrigger = $(findHref);
$(mylinktotrigger).trigger('click');
}
});
</script>
</head>
<body>
<a href="http://buffermow.com?p=123" onclick="alert('its Done');" class="filmloop various fancybox.iframe">My fancy link</a>
</body>
</html>