2017-02-22 1 views
0

О перенаправлении одной страницы другой, какой-то код должен быть выполнен, но не было возможностиПеренаправление на конкретную страницу и написать код OnLoad этой страницы в Js

if (something === true) { 
    /* Redirect to someotherpage.php */ 
    window.location.href = "someotherpage.php" 
    var test = "someotherpage.php"; 

    /* onload of someotherpage.php, execute this introjs step */ 
    $(test).load(function() { 
    if (window.location.href === test) { 
     /* unable to execute this */ 
     introJs().addStep({ 
     element: $('#ck-dashboard-pending-task')[0], 
     intro: 'Here you can see the todo list', 
     position: 'left' 
     }).setOption('scrollToElement', true).start(); 
    } 
    }); 
} 
+1

После установки 'window.location.href' он прекратит выполнение JS. – George

ответ

1

Ваш вопрос в том, что вы пытаетесь выполнить код внутри страницы, когда загружается другая страница. Вы не можете этого сделать (вы можете сделать это в одностраничных приложениях, но это уже другая история).

В вашем someotherpage.php вы должны добавить этот код:

$(window).load(function(){ 
     introJs().addStep({ 
     element:$('#ck-dashboard-pending-task')[0], 
     intro:'Here you can see the todo list', 
     position:'left' 
     }).setOption('scrollToElement', true).start(); 
    }); 

И вы должны удалить эту часть вашего кода на странице: тест вар = «someotherpage.php»;

/* onload of someotherpage.php, execute this introjs step */ 
    $(test).load(function() { 
    if (window.location.href === test) { 
     /* unable to execute this */ 
     introJs().addStep({ 
     element: $('#ck-dashboard-pending-task')[0], 
     intro: 'Here you can see the todo list', 
     position: 'left' 
     }).setOption('scrollToElement', true).start(); 
    } 
    }); 

EDIT: Как спросил ОП, вот уточнение: В вашей первой странице, вы могли бы сделать что-то вроде этого:

if (something === true) { 
    /* Redirect to someotherpage.php */ 
    window.location.href = "someotherpage.php?some_condition_you_want_to_check=1" 
} 

На someotherpage.php:

$(window).load(function(){ 
    $.urlParam = function(name){ 
     var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href); 
     if (results==null){ 
      return null; 
     } 
     else{ 
      return results[1] || 0; 
     } 
    } 

    if($.urlParam('some_condition_you_want_to_check') !== null){ 
     introJs().addStep({ 
      element:$('#ck-dashboard-pending-task')[0], 
      intro:'Here you can see the todo list', 
      position:'left' 
      }).setOption('scrollToElement', true).start(); 
     }); 
    } 
    } 

Конечно, моя непроверенная и, безусловно, улучшенная часть кода, но это должно дать вам представление о том, что вам нужно сделать, чтобы достичь того, чего вы хотите ,

+0

Привет, спасибо micheal, но мне нужно выполнить это событие загрузки только при условии if (something == true). Есть ли способ сделать это? –

+0

Вы должны применять любую страницу-специфическую логику внутри такой страницы. Если вам нужно передать что-то со страницы 1 на страницу 2, вы можете добавить параметр GET со страницы 1 и проверить его на стр. 2. –

+0

Я написал этот код в пространстве имен, поэтому ** с ** страницы случайны и не знают, как передать параметр на другую страницу. Можете ли вы привести небольшой пример. –

Смежные вопросы