我有很多打开的页面具有相同的域和相同的内容,我需要的是,当我点击一个选项卡中的特定按钮时,其他选项卡响应并单击相同的按钮,所以我会节省这么多时间。 我在这里读到这个函数叫做“对讲”。
答案 0 :(得分:0)
很抱歉延迟回答,但我想写一个好方法而不只是快速回答积分。仅当页面全部位于同一域下时,此方法才有效。 LocalStorage就是这样运作的。让我知道这是否适合你,可能需要调整一点,但应该给你一个想法。可能有更好的方法,但这是我最初处理它的方式。
这将在每页上发布。然后,您可以使用页面网址或类似隐藏字段的内容,使每个页面都是唯一的,并且可以在您当前使用时跟踪。但总体思路应该有效。
快乐的编码!希望这能帮到你!
这是有效的,因为该脚本在每个页面上运行。它唯一的原因是它知道它在哪个页面上, 是由于当脚本执行时隐藏字段值表示当前页面的内容。
这是一个非常普遍的例子。但是应该给你这个概念。 由于此脚本在每个页面上运行,并且通常是一般编写的,因此它可以完成。只需确认按钮名称触发事件就是每个页面上的相同名称!
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");
}
}
}
}