2016-01-28 3 views
0

У меня есть много открытых страниц с одним и тем же доменом и тем же содержимым, и мне нужно, чтобы при нажатии на определенную кнопку на одной вкладке другие вкладки отвечали и нажимали также одну и ту же кнопку, поэтому я бы сэкономил столько времени , Я где-то читал, что эта функция называется «Интерком».Как сделать другие вкладки, щелкнув элемент, когда я нажимаю кнопку на активированной вкладке?

+0

Это может помочь http://stackoverflow.com/q/3203530/4759033 –

+0

я читал, но к сожалению, не мог понять это, потому что я начинаю, и мне нужно простое решение, но спасибо за вашу помощь! –

+0

Вы можете попробовать этот подход специально [link] (http://stackoverflow.com/a/18901619/4759033), но с HTML [localstorage] (http://www.w3schools.com/html/html5_webstorage.asp) –

ответ

0

Извините за отложенный ответ, но я хотел написать хороший способ, а не просто быстрый ответ за очки. Это работает только в том случае, если все страницы находятся в одном домене. LocalStorage работает именно так. Дайте мне знать, если это сработает для вас, и, возможно, придется немного подкорректировать, но вам следует подумать над этим. Может быть, лучший способ, но так я бы справился с этим поначалу.

Это будет отображаться на каждой странице. Затем вы можете использовать URL-адреса страницы или нечто вроде скрытого поля, чтобы сделать каждую страницу уникальной и доступной для отслеживания, когда вы на ней находитесь. Но общая идея должна работать.

Счастливое кодирование! Надеюсь, это поможет вам!

Это работает, потому что этот скрипт запускается на каждой странице. Единственная причина, по которой он знает, на какой странице он находится, объясняется тем, что значение скрытого поля говорит о текущей странице s при выполнении скрипта.

Это очень градиентный пример. Но должен дать вам концепцию. Поскольку этот скрипт работает на каждой странице и записывается в общем виде, он запускается. ТОЛЬКО УБЕДИТЕСЬ, ЧТО ИМЯ КНОПКИ НА СЛУЧАЕ ТРИГГЕРА ЯВЛЯЕТСЯ ЖИВОЙ ИМЯ НА КАЖДУЮ СТРАНИЦУ!

P.S. Вы также можете использовать window.location, чтобы узнать, на какой странице вы находитесь в скрытом поле.

**** HTML Пример каждой страницы *****

<!-- Each Page --> 
<!-- Page 1--> 
<div> 
    <input type="hidden" value="page1"/> 
    <input type="button" id="cmdButtonThatTriggersEvent" value="Test Buttom"/> 

</div> 

<!-- Page 2--> 
<div> 
    <input type="hidden" value="page2"/> 
    <input type="button" id="cmdButtonThatTriggersEvent" value="Test Buttom"/> 

</div> 

<!-- Page 3--> 
<div> 
    <input type="hidden" value="page3"/> 
    <input type="button" id="yourButton" value="Test Buttom"/> 

</div> 


//Make sure ever button name or id is the same on each page. 
//That way it is generic. You will also have to track what page //triggered the click event. So make a localstorage hold if the action was clicked to occur, and a localstorage key that holds an array fo all the pages you want this done on. So that way the code can be on every page, and you mark the page off if all page entries were affected, then reset the switch back to null. 

****Javascript example for each page***** 


<script> 


     var globalAllPages = ["Page1, "Page3", "Page3"]; //etc. 

     $(document).on("click", "#yourButton", function(){ 
     localStorage.setItem("trigger_state", "true"); 
     HandleLocalStorageSwitch(); 
     }); 

     $(document).ready(function(){   
      setInterval(function(){    
       HandleLocalStorageSwitch();     
      }, 500); 
     }); 



     function HandleLocalStorageSwitch() 
     { 
      var trigger = localStorage.getItem("trigger_state"); 
      var location = localStorage.getItem("location"); 

      if(trigger != undefined && trigger == "true"){ 
       //now see if this page has ran yet 
       var dictPages = JSON.parse(localStorage.getItem("current_pages")); //gets the array 
       var exists = false; 

       for(var x=0;x<dictPages;x++){ 
        if(dictPages[x]=="this_page"){ 
         exists=true; 
         break; 
        }      
       } 

       //if it wasnt found then insert it 
       if(!exists){ 
        dictPages.add("this_page"); 
        $("#this_page_Button").click(); //now trigger this button 
       } 

       if(dictPages.length == globalAllPages.length){ 
        //we hit all pages 
        //then all have been ran, and remove the switch and clear dict 
        localStorage.setItem("shouldTriggerEvent", "false"); 
        //so now reset and won't run untill one of buttons clicked, then starts process again 
        localStorage.removeItemKey("current_pages"); 
       }     
       }         
      } 
     } 

+0

Это поможет, если количество вкладок не фиксировано, а также может заметить, что «this_page» необходимо изменить на каждой странице, что потребует сервера -защищенный код. И он также не упоминал, что использовал jQuery. – GGG

+0

благодарит брата за код. Я расскажу больше о ситуации, это 22 вкладки с одинаковыми URL-адресами (все они являются Формами).Я хочу просто нажать кнопку на первой вкладке, так что только первая вкладка будет использоваться для нажатия кнопки «отправить», а затем все остальные 21 вкладки ответят и нажмите кнопку «отправить». –

+0

поэтому мне нужен простой сценарий, не учитывая другие перспективы. –

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