#javascript #html
Вопрос:
Как я смогу нажать кнопку на одной странице, чтобы включить другую кнопку на другой странице?
мой javascript
function enableButton2() {
document.getElementById("button2").disabled = false;
document.getElementById("divbutton").hidden = false;
}
HTML
<input type="button" id="button1" value="button 1" onclick="enableButton2()"/>
<div id="divbutton" hidden>
<input onclick="window.location.href='menu.html'" type="button" id="button2" value="button 2" disabled />
</div>
этот код работает, но будет работать только в том случае, если обе эти кнопки находятся на одной странице, я пытаюсь разделить их на отдельные страницы, но все равно работать по назначению, то есть при нажатии на первую кнопку появится вторая кнопка.
Заранее спасибо!
Ответ №1:
localStorage
это был бы эффективный подход, если вы также хотите сохранить выбор кнопки пользователя. localStorage
позволяет хранить значение в том же источнике, что означает, что вам просто нужно проверить, было ли изменено значение, и определить, какая кнопка должна быть включена.
Например,
function enableButton2() {
localStorage.enabledButton = '2'
}
Затем, чтобы проверить, какую кнопку включить, которая будет использоваться на второй странице
setInterval(() => {
if (localStorage.enabledButton == "1") {
//Enable button 1
}
if (localStorage.enabledButton == "2") {
//Enable button 2
}
})
Ответ №2:
Вы можете использовать API широковещательного канала для связи между различными вкладками.
Например, объявите следующее на обеих страницах:
const bc = new BroadcastChannel('button_disable');
bc.onmessage = function(event){
if(event.data == "hide"){
//hide the buttons
}else if(event.data == "show){
//show the buttons
}
}
Затем, если вы хотите скрыть/показать кнопку, просто отправьте сообщение:
bc.postMessage('hide');
Комментарии:
1. Я хотел бы добавить. если у вас есть глобальный файл scrip, например «Utility.js» который вы включаете каждый раз, когда он также может быть там. вам не пришлось бы дублировать код.