묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
새로고침을 해도 사용자가 클릭해서 열었던 서브메뉴를 고정시키고 싶습니다.
2004.04.07 10:33
윈도우 형식 메뉴입니다.
+ - 폴더가 출력됩니다. 근데 처음에는 폴더만 출력되구요. 폴더아래 서브메뉴는 처음에 표기되지않습니다.
폴더클릭시 +가 -로 변하면서 아래로 서브메뉴가 윈도우 형식으로 출력됩니다.
여기서 제가 하고뿐질문은 노프레임시 새로고침을 해버리면 다시 폴더만 나와서 게시판은 그대로 있는데 메뉴만 제자리로 돌아가 사용자가 불편하것 같아 새로고침을 해도 사용자가 클릭해서 열었던 서브메뉴를 고정시키고 싶습니다.
고수님들 수고스럽더라도 다시 한번 공부한다치고 알려주십시오.
밝은 인터넷문화를 위해서~
아래는 소스입니다.
------------------menu1.js----------------------------------------------------------------------------------------
document.onmouseover = mOver ;
document.onmouseout = mOut ;
function mOver() {
var eSrc = window.event.srcElement ;
if (eSrc.className == "item") {
window.event.srcElement.className = "highlight";
}
}
function mOut() {
var eSrc = window.event.srcElement ;
if (eSrc.className == "highlight") {
window.event.srcElement.className = "item";
}
}
var bV=parseInt(navigator.appVersion);
NS4=(document.layers) ? true : false;
IE4=((document.all)&&(bV>=4))?true:false;
ver4 = (NS4 || IE4) ? true : false;
isExpanded = false;
function getIndex($1) {
ind = null;
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id == $1) {
ind = i;
break;
}
}
return ind;
}
function arrange() {
nextY = document.layers[firstInd].pageY + document.layers[firstInd].document.height;
for (i=firstInd+1; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.visibility != "hide") {
whichEl.pageY = nextY;
nextY += whichEl.document.height;
}
}
}
function FolderInit(){
if (NS4) {
firstEl = "mParent";
firstInd = getIndex(firstEl);
showAll();
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
}
arrange();
}
else {
tempColl = document.all.tags("DIV");
for (i=0; i<tempColl.length; i++) {
if (tempColl(i).className == "child") tempColl(i).style.display = "none";
}
}
}
function FolderExpand($1,$2) {
if (!ver4) return;
if (IE4) { ExpandIE($1,$2) }
else { ExpandNS($1,$2) }
}
function ExpandIE($1,$2) {
Expanda = eval($1 + "a");
Expanda.blur()
ExpandChild = eval($1 + "Child");
if ($2 != "top") {
ExpandTree = eval($1 + "Tree");
ExpandFolder = eval($1 + "Folder");
}
if (ExpandChild.style.display == "none") {
ExpandChild.style.display = "block";
if ($2 != "top") {
if ($2 == "last") { ExpandTree.src = "./menu1/images/Lminus.gif"; }
else { ExpandTree.src = "./menu1/images/Tminus.gif"; }
ExpandFolder.src = "./menu1/images/openfoldericon.gif";
}
else { mTree.src = "./menu1/images/topopen.gif"; }
}
else {
ExpandChild.style.display = "none";
if ($2 != "top") {
if ($2 == "last") { ExpandTree.src = "./menu1/images/Lplus.gif"; }
else { ExpandTree.src = "./menu1/images/Tplus.gif"; }
ExpandFolder.src = "./menu1/images/foldericon.gif";
}
else { mTree.src = "./menu1/images/top.gif"; }
}
}
function ExpandNS($1,$2) {
ExpandChild = eval("document." + $1 + "Child")
if ($2 != "top") {
ExpandTree = eval("document." + $1 + "Parent.document." + $1 + "Tree")
ExpandFolder = eval("document." + $1 + "Parent.document." + $1 + "Folder")
}
if (ExpandChild.visibility == "hide") {
ExpandChild.visibility = "show";
if ($2 != "top") {
if ($2 == "last") { ExpandTree.src = "./menu1/images/Lminus.gif"; }
else { ExpandTree.src = "./menu1/images/Tminus.gif"; }
ExpandFolder.src = "./menu1/images/openfoldericon.gif";
}
else { mTree.src = "./menu1/images/topopen.gif"; }
}
else {
ExpandChild.visibility = "hide";
if ($2 != "top") {
if ($2 == "last") { ExpandTree.src = "./menu1/images/Lplus.gif"; }
else { ExpandTree.src = "./menu1/images/Tplus.gif"; }
ExpandFolder.src = "./menu1/images/foldericon.gif";
}
else { mTree.src = "./menu1/images/top.gif"; }
}
arrange();
}
function showAll() {
for (i=firstInd; i<document.layers.length; i++) {
whichEl = document.layers[i];
whichEl.visibility = "show";
}
}
with (document) {
write("<STYLE TYPE='text/css'>");
if (NS4) {
write(".parent { color: black; font-size:9pt; line-height:0pt; color:black; text-decoration:none; margin-top: 0px; margin-bottom: 0px; position:absolute; visibility:hidden }");
write(".child { text-decoration:none; font-size:9pt; line-height:15pt; position:absolute }");
write(".item { color: black; text-decoration:none }");
write(".highlight { color: blue; text-decoration:none }");
}
else {
write(".parent { font: 12px/13px; Times; text-decoration: none; color: black }");
write(".child { font:12px/13px Times; display:none }");
write(".item { color: black; text-decoration:none; cursor: hand }");
write(".highlight { color: blue; text-decoration:none }");
write(".icon { margin-right: 5 }")
}
write("</STYLE>");
}
onload = FolderInit;
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------index.php---------------------------------------------------------------
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>메뉴수정</title>
<script language="javascript" src="./menu1/menu1.js"></script>
</head>
<body>
<div ID="mParent" class="parent">
생략
</div>
</body>
</html>
+ - 폴더가 출력됩니다. 근데 처음에는 폴더만 출력되구요. 폴더아래 서브메뉴는 처음에 표기되지않습니다.
폴더클릭시 +가 -로 변하면서 아래로 서브메뉴가 윈도우 형식으로 출력됩니다.
여기서 제가 하고뿐질문은 노프레임시 새로고침을 해버리면 다시 폴더만 나와서 게시판은 그대로 있는데 메뉴만 제자리로 돌아가 사용자가 불편하것 같아 새로고침을 해도 사용자가 클릭해서 열었던 서브메뉴를 고정시키고 싶습니다.
고수님들 수고스럽더라도 다시 한번 공부한다치고 알려주십시오.
밝은 인터넷문화를 위해서~
아래는 소스입니다.
------------------menu1.js----------------------------------------------------------------------------------------
document.onmouseover = mOver ;
document.onmouseout = mOut ;
function mOver() {
var eSrc = window.event.srcElement ;
if (eSrc.className == "item") {
window.event.srcElement.className = "highlight";
}
}
function mOut() {
var eSrc = window.event.srcElement ;
if (eSrc.className == "highlight") {
window.event.srcElement.className = "item";
}
}
var bV=parseInt(navigator.appVersion);
NS4=(document.layers) ? true : false;
IE4=((document.all)&&(bV>=4))?true:false;
ver4 = (NS4 || IE4) ? true : false;
isExpanded = false;
function getIndex($1) {
ind = null;
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id == $1) {
ind = i;
break;
}
}
return ind;
}
function arrange() {
nextY = document.layers[firstInd].pageY + document.layers[firstInd].document.height;
for (i=firstInd+1; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.visibility != "hide") {
whichEl.pageY = nextY;
nextY += whichEl.document.height;
}
}
}
function FolderInit(){
if (NS4) {
firstEl = "mParent";
firstInd = getIndex(firstEl);
showAll();
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
}
arrange();
}
else {
tempColl = document.all.tags("DIV");
for (i=0; i<tempColl.length; i++) {
if (tempColl(i).className == "child") tempColl(i).style.display = "none";
}
}
}
function FolderExpand($1,$2) {
if (!ver4) return;
if (IE4) { ExpandIE($1,$2) }
else { ExpandNS($1,$2) }
}
function ExpandIE($1,$2) {
Expanda = eval($1 + "a");
Expanda.blur()
ExpandChild = eval($1 + "Child");
if ($2 != "top") {
ExpandTree = eval($1 + "Tree");
ExpandFolder = eval($1 + "Folder");
}
if (ExpandChild.style.display == "none") {
ExpandChild.style.display = "block";
if ($2 != "top") {
if ($2 == "last") { ExpandTree.src = "./menu1/images/Lminus.gif"; }
else { ExpandTree.src = "./menu1/images/Tminus.gif"; }
ExpandFolder.src = "./menu1/images/openfoldericon.gif";
}
else { mTree.src = "./menu1/images/topopen.gif"; }
}
else {
ExpandChild.style.display = "none";
if ($2 != "top") {
if ($2 == "last") { ExpandTree.src = "./menu1/images/Lplus.gif"; }
else { ExpandTree.src = "./menu1/images/Tplus.gif"; }
ExpandFolder.src = "./menu1/images/foldericon.gif";
}
else { mTree.src = "./menu1/images/top.gif"; }
}
}
function ExpandNS($1,$2) {
ExpandChild = eval("document." + $1 + "Child")
if ($2 != "top") {
ExpandTree = eval("document." + $1 + "Parent.document." + $1 + "Tree")
ExpandFolder = eval("document." + $1 + "Parent.document." + $1 + "Folder")
}
if (ExpandChild.visibility == "hide") {
ExpandChild.visibility = "show";
if ($2 != "top") {
if ($2 == "last") { ExpandTree.src = "./menu1/images/Lminus.gif"; }
else { ExpandTree.src = "./menu1/images/Tminus.gif"; }
ExpandFolder.src = "./menu1/images/openfoldericon.gif";
}
else { mTree.src = "./menu1/images/topopen.gif"; }
}
else {
ExpandChild.visibility = "hide";
if ($2 != "top") {
if ($2 == "last") { ExpandTree.src = "./menu1/images/Lplus.gif"; }
else { ExpandTree.src = "./menu1/images/Tplus.gif"; }
ExpandFolder.src = "./menu1/images/foldericon.gif";
}
else { mTree.src = "./menu1/images/top.gif"; }
}
arrange();
}
function showAll() {
for (i=firstInd; i<document.layers.length; i++) {
whichEl = document.layers[i];
whichEl.visibility = "show";
}
}
with (document) {
write("<STYLE TYPE='text/css'>");
if (NS4) {
write(".parent { color: black; font-size:9pt; line-height:0pt; color:black; text-decoration:none; margin-top: 0px; margin-bottom: 0px; position:absolute; visibility:hidden }");
write(".child { text-decoration:none; font-size:9pt; line-height:15pt; position:absolute }");
write(".item { color: black; text-decoration:none }");
write(".highlight { color: blue; text-decoration:none }");
}
else {
write(".parent { font: 12px/13px; Times; text-decoration: none; color: black }");
write(".child { font:12px/13px Times; display:none }");
write(".item { color: black; text-decoration:none; cursor: hand }");
write(".highlight { color: blue; text-decoration:none }");
write(".icon { margin-right: 5 }")
}
write("</STYLE>");
}
onload = FolderInit;
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------index.php---------------------------------------------------------------
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>메뉴수정</title>
<script language="javascript" src="./menu1/menu1.js"></script>
</head>
<body>
<div ID="mParent" class="parent">
생략
</div>
</body>
</html>