进入参数时加载主页

时间:2013-08-20 14:03:17

标签: jquery ajax wordpress fancybox

我有一个基于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");

这是棘手的部分。如何重定向页面时,如何存储参数供以后使用。这种思维方式是否可行,还有其他任何想法吗?

2 个答案:

答案 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>