Ok, daar gaan we dan. Ik heb een probleem met mijn huidige context menu namelijk:
-Hij positioneerd zichzelf verkeerd
-Hij is alleen IE bestendig.
Aangezien ik sinds een tijdje zelf in Firebird surf is dit een probleem geworden
Dus besloot ik op zoek te gaan naar een nieuw scriptje, om die weer aan te passen etc ('k ben geen javascript prog held). Ik stuitte op dit scriptje.
Nou goed. Ik wil het ding gaan gebruiken, maar mijn menu moet automatisch aanpassen, aangezien ik een wisselend UserId en IconId gebruik.
Daar heb ik dus dit scriptje voor:
[javascript]
function menuweergave(icoonId,creatorId){
var menuHTML = '<div><b>Menu</b></div><hr><div class="submenu" onclick="location.href(\'http://www.freshicons.com/forum/profile.php/?p=add2favorites&icoonId='+ icoonId +'\')">Add to favorite icons</div><div class="submenu" onClick="MyWindow=window.open(\'http://www.freshicons.com/popuprating.php?icoonId_popup='+ icoonId +'\',\'Rating_System\',\'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=260\'); return false;">Vote</div><div class="submenu" onclick="location.href(\'http://www.freshicons.com/forum/profile.php/'+ creatorId +'\')">View creators profile</div><hr><div class="submenu" onclick="location.href(\'http://www.freshicons.com/forum/profile.php/?p=setAvatar&icoonId='+ icoonId +'\')">Set as avatar</div><hr><div class="submenu" onclick="location.href(\'http://www.freshicons.com/admin/index.php?page=deadFiles&p=deleteFile&icoonId='+ icoonId +'\')">Delete icon</div><div class="submenu" onclick="location.href(\'http://www.freshicons.com/admin/index.php?page=categories&p=updateCat&icoonId='+ icoonId +'\')">Change categorie</div><hr><div class="submenu" OnClick="document.all.mess.style.visibility=\'hidden\'">Cancel</div>';
if (ie) document.all.mess.innerHTML=menuHTML
else if (ns6) document.getElementById("mess").innerHTML=menuHTML
}
[/javascript]
Swapt dus de HTML dmv InnerHTML. Werkt perfect
De 2e functie die ik gebruik is:
[javascript]
function go3(e){
var rightedge=ie5? document.body.clientWidth-event.clientX : window.innerWidth-e.clientX
var bottomedge=ie5? document.body.clientHeight-event.clientY : window.innerHeight-e.clientY
if (rightedge<menuobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
menuobj.style.left=ie5? document.body.scrollLeft+event.clientX-menuobj.offsetWidth : window.pageXOffset+e.clientX-menuobj.offsetWidth
}else{
//position the horizontal position of the menu where the mouse was clicked
menuobj.style.left=ie5? document.body.scrollLeft+event.clientX : window.pageXOffset+e.clientX
}
//same concept with the vertical position
if (bottomedge<menuobj.offsetHeight){
menuobj.style.top=ie5? document.body.scrollTop+event.clientY-menuobj.offsetHeight : window.pageYOffset+e.clientY-menuobj.offsetHeight
}else{
menuobj.style.top=ie5? document.body.scrollTop+event.clientY : window.pageYOffset+e.clientY
}
document.all.mess.style.visibility='visible'; return false
}
[/javascript]
Bovenaan de pagina staan de volgende vars gedefineerd:
[javascript]
var ie=document.all&&document.getElementById
var ie5=document.all&&document.getElementById
var ns6=document.getElementById&&!document.all
var menuobj=ie5? document.all.mess : menuobj=document.getElementById("mess")
[/javascript]
Normaal gesproken werd go3(); aangevraagd via dit scriptje:
[javascript]
if (ie5||ns6){
menuobj.style.display=''
document.oncontextmenu=showmenuie5
document.onclick=hidemenuie5
}
[/javascript]
Aangezien ik niet wil dat het op het contect menu gebeurd maar op een leftClick op de icon heb ik ervan gemaakt:
onclick="menuweergave(5118,532); go3();"
Alleen nu geeft hij in Firebird en IE de volgende fouten:
e has no properties.
op de eerste regel van go3()
Kan iemand mij helpen?
-Hij positioneerd zichzelf verkeerd
-Hij is alleen IE bestendig.
Aangezien ik sinds een tijdje zelf in Firebird surf is dit een probleem geworden
Dus besloot ik op zoek te gaan naar een nieuw scriptje, om die weer aan te passen etc ('k ben geen javascript prog held). Ik stuitte op dit scriptje.
Nou goed. Ik wil het ding gaan gebruiken, maar mijn menu moet automatisch aanpassen, aangezien ik een wisselend UserId en IconId gebruik.
Daar heb ik dus dit scriptje voor:
[javascript]
function menuweergave(icoonId,creatorId){
var menuHTML = '<div><b>Menu</b></div><hr><div class="submenu" onclick="location.href(\'http://www.freshicons.com/forum/profile.php/?p=add2favorites&icoonId='+ icoonId +'\')">Add to favorite icons</div><div class="submenu" onClick="MyWindow=window.open(\'http://www.freshicons.com/popuprating.php?icoonId_popup='+ icoonId +'\',\'Rating_System\',\'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=260\'); return false;">Vote</div><div class="submenu" onclick="location.href(\'http://www.freshicons.com/forum/profile.php/'+ creatorId +'\')">View creators profile</div><hr><div class="submenu" onclick="location.href(\'http://www.freshicons.com/forum/profile.php/?p=setAvatar&icoonId='+ icoonId +'\')">Set as avatar</div><hr><div class="submenu" onclick="location.href(\'http://www.freshicons.com/admin/index.php?page=deadFiles&p=deleteFile&icoonId='+ icoonId +'\')">Delete icon</div><div class="submenu" onclick="location.href(\'http://www.freshicons.com/admin/index.php?page=categories&p=updateCat&icoonId='+ icoonId +'\')">Change categorie</div><hr><div class="submenu" OnClick="document.all.mess.style.visibility=\'hidden\'">Cancel</div>';
if (ie) document.all.mess.innerHTML=menuHTML
else if (ns6) document.getElementById("mess").innerHTML=menuHTML
}
[/javascript]
Swapt dus de HTML dmv InnerHTML. Werkt perfect
De 2e functie die ik gebruik is:
[javascript]
function go3(e){
var rightedge=ie5? document.body.clientWidth-event.clientX : window.innerWidth-e.clientX
var bottomedge=ie5? document.body.clientHeight-event.clientY : window.innerHeight-e.clientY
if (rightedge<menuobj.offsetWidth){
//move the horizontal position of the menu to the left by it's width
menuobj.style.left=ie5? document.body.scrollLeft+event.clientX-menuobj.offsetWidth : window.pageXOffset+e.clientX-menuobj.offsetWidth
}else{
//position the horizontal position of the menu where the mouse was clicked
menuobj.style.left=ie5? document.body.scrollLeft+event.clientX : window.pageXOffset+e.clientX
}
//same concept with the vertical position
if (bottomedge<menuobj.offsetHeight){
menuobj.style.top=ie5? document.body.scrollTop+event.clientY-menuobj.offsetHeight : window.pageYOffset+e.clientY-menuobj.offsetHeight
}else{
menuobj.style.top=ie5? document.body.scrollTop+event.clientY : window.pageYOffset+e.clientY
}
document.all.mess.style.visibility='visible'; return false
}
[/javascript]
Bovenaan de pagina staan de volgende vars gedefineerd:
[javascript]
var ie=document.all&&document.getElementById
var ie5=document.all&&document.getElementById
var ns6=document.getElementById&&!document.all
var menuobj=ie5? document.all.mess : menuobj=document.getElementById("mess")
[/javascript]
Normaal gesproken werd go3(); aangevraagd via dit scriptje:
[javascript]
if (ie5||ns6){
menuobj.style.display=''
document.oncontextmenu=showmenuie5
document.onclick=hidemenuie5
}
[/javascript]
Aangezien ik niet wil dat het op het contect menu gebeurd maar op een leftClick op de icon heb ik ervan gemaakt:
onclick="menuweergave(5118,532); go3();"
Alleen nu geeft hij in Firebird en IE de volgende fouten:
e has no properties.
op de eerste regel van go3()
Kan iemand mij helpen?
Bla