У меня есть этот код в JavaScript, который скрывает некоторый контент. На самом деле я хочу скрыть содержимое до нажатия кнопки. Я знаю, что, возможно, я мог бы иметь пустые элементы и заполнить их после того, как я нажму эту кнопку, но это похоже на более простой способ.
Я хочу выполнить эту функцию с того момента, когда пользователь заходит на страницу, когда он нажимает какую-либо кнопку, а затем никогда, даже после обновления.
Возможно ли это как-нибудь?
function hideTheTable(){
document.getElementsByTagName('table')[0].style.visibility = "hidden"
document.getElementsByTagName('table')[1].style.visibility = "hidden"
document.getElementsByTagName('button')[1].style.visibility = "hidden"
document.getElementById('info').style.visibility = "hidden"
}
hideTheTable();
3 ответа
Вы можете использовать localStorage
, чтобы запомнить, была ли функция уже запущена.
function hideTheTable(){
if(!localStorage.getItem('hideTableFlag')){
localStorage.setItem('hideTableFlag', true);
console.log('function run')
}
}
Таким образом см .: https://developer.mozilla.org/en-US/ docs / Glossary / IIFE
(function () {
document.getElementsByTagName('table')[0].style.visibility = "hidden"
document.getElementsByTagName('table')[1].style.visibility = "hidden"
document.getElementsByTagName('button')[1].style.visibility = "hidden"
document.getElementById('info').style.visibility = "hidden"
})();
Да, вы можете, добавив cookie, который возвращается, если пользователь заходил на страницу раньше:
// first lets create a helper function that lets us retreive a cookie
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
// setting cookie
// if you need the function to load when the page loads
window.onload = (){
document.cookie = "enteredbefore=true; path=/";
};
// else if you need to call it when user clicks on button (define your button)
mybutton.onclick = (){
document.cookie = "enteredbefore=true; path=/";
};
// now we make if else statment
if(getCookie(enteredbefore) == ""){
// call your function
hideTheTable();
}
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.