2013-08-20 2 views
0

У меня есть сайт на WordPress, который показывает сообщения в всплывающем окне, используя Fancybox v.2. По-видимому, единственный способ запуска Fancybox - щелкнуть тег a с определенными классами обратного вызова.Загрузите домашнюю страницу при входе с параметром

Так что это:

<a href="<?php echo home_url(); ?>/?p=<?php the_ID(); ?>" class="filmloop various fancybox.iframe"> 

Но, когда я вернусь на сайт прямым Permalink он загружает 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

Вы можете вызвать щелчок, когда страница загружена

$(document).ready(function{} 
    $('somelink').trigger('click'); 
}); 

Таким образом, вы можете настроить таргетинг на ссылку на странице, который создает FancyBox.

+0

Это я знаю. У меня даже есть фиктивный якорь, подготовленный и функционирующий, который помещает url в href и триггеры. – Morlas

+0

Я прав, думая, что вы хотите запустить Fancybox при загрузке начальной страницы? Если это так, вам не нужно запускать его по ссылке, которая действительно идет куда угодно, я думаю, вы это знаете, но с вашим вопросом это не очень понятно. Вы можете сделать ссылку, которая запускает Fancybox, ничего не делать, кроме как выступать в качестве слушателя для fancybox, как это 'Open Fancybox' 'Я не уверен, что еще нужно сделать, чтобы запустить fancybox из ссылки, но добавить, чем и скрыть ссылку с css, а затем вызвать клик по нему, как я показал вам выше. –

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> 
Смежные вопросы