我非常喜欢堆栈溢出,但这是我第一次写!
我有一个页面,当你点击公司标志时,会打开一个类似于右下拉菜单的页面。它是用纯css开发的。当你浏览内部页面时,我用这个脚本保持菜单打开,比如"about"、"gallery"、"contacts"、ecc。。。
<script>
$(document).ready(function () {
$("#slide").click();
});
</script>
我需要的是,当你从我之前告诉过你的其他内部页面返回时,在主页上激活这个脚本。而不是在第一个主页加载,我需要关闭的标志和隐藏的菜单!
有人有什么建议吗?再次非常感谢大家!
其他人有可能的解决方案吗?
第一次访问时,在文档就绪子句中:
localStorage.setItem("displayDropDown", "true");
每次访问:
$(document).ready(function() {
if(localStorage.getItem("displayDropDown") === "true") {
$("#slide").click();
}
});
将它们放在同一个文档准备条款中:
$(document).ready(function() {
if(localStorage.getItem("displayDropDown") === "true") {
$("#slide").click();
}
localStorage.setItem("displayDropDown", "true");
});
这是一个完整的例子。它使用localStorange和Cookies(通过jscookie)作为后备:
现代浏览器示例:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1 id="count"></h1>
<script type="text/javascript">
const getNumberOfPreviousVisits = () => {
const numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0;
window.localStorage.numberOfVisits = numberOfVisits;
return numberOfVisits;
}
document.addEventListener('DOMContentLoaded', function(event) {
if (getNumberOfPreviousVisits() > 0) {
// $("#slide").click();
}
});
</script>
</body>
</html>
支持传统浏览器的示例:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1 id="count"></h1>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.0/js.cookie.min.js"></script>
<script type="text/javascript">
var localStorageAvailable = function() {
try {
var x = '__storage_test__';
window.localStorage.setItem(x, x);
window.localStorage.removeItem(x);
return true;
} catch(e) {
return false;
}
}
var getNumberOfPreviousVisitsLocalStorage = function() {
var numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0;
window.localStorage.numberOfVisits = numberOfVisits;
return numberOfVisits;
}
var getNumberOfPreviousVisitsCookie = function() {
var numberOfVisits = Cookies.get('numberOfVisits') ? parseInt(Cookies.get('numberOfVisits'), 10 ) + 1 : 0;
Cookies.set('numberOfVisits', numberOfVisits);
return numberOfVisits;
}
var getNumberOfPreviousVisits = function() {
if (localStorageAvailable()) {
return getNumberOfPreviousVisitsLocalStorage();
}
return getNumberOfPreviousVisitsCookie();
}
document.addEventListener('DOMContentLoaded', function(event) {
if (getNumberOfPreviousVisits() > 0) {
// $("#slide").click();
}
});
</script>
</body>
</html>
原始示例:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<h1 id="count"></h1>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.1.0/js.cookie.min.js"></script>
<script type="text/javascript">
const localStorageAvailable = () => {
try {
const x = '__storage_test__';
window.localStorage.setItem(x, x);
window.localStorage.removeItem(x);
return true;
} catch(e) {
return false;
}
}
const getNumberOfPreviousVisitsLocalStorage = () => {
const numberOfVisits = window.localStorage.numberOfVisits ? parseInt(window.localStorage.numberOfVisits, 10) + 1 : 0;
window.localStorage.numberOfVisits = numberOfVisits;
return numberOfVisits;
}
const getNumberOfPreviousVisitsCookie = () => {
const numberOfVisits = Cookies.get('numberOfVisits') ? parseInt(Cookies.get('numberOfVisits'), 10 ) + 1 : 0;
Cookies.set('numberOfVisits', numberOfVisits);
return numberOfVisits;
}
const getNumberOfPreviousVisits = () => {
if (localStorageAvailable()) {
return getNumberOfPreviousVisitsLocalStorage();
}
return getNumberOfPreviousVisitsCookie();
}
document.addEventListener('DOMContentLoaded', function(event) {
if (getNumberOfPreviousVisits() > 0) {
// $("#slide").click();
}
});
</script>
</body>
</html>