script blokkeerd 1e script

Status
Niet open voor verdere reacties.

nilis312

Gebruiker
Lid geworden
2 mei 2007
Berichten
5
Hallo,

Ik heb 2 javascripts op de pagina die tegelijk worden uitgevoerd.
De site is zo ingedeelt. De index.php pagina is overal hetzelfde en de andere pagina's worden in een div ingeladen in het content gedeelte.

Nu wordt er op mijn index gebruik gemaakt van een dropdown menu die prima werkt.
Wanneer ik de pagina aanroep invoerbedrijven.php waar script 2 op staat met een hide/show tabel blokkeert deze mijn dropdown menu dus mijn 1e script. Dit is heel irritant omdat ik dan weer eerst de site moet "refreshen" om de dropdown menu weer te laten werken. De codes werken dus allebei wel verder prima maar ik neem aan dat er iets niet klopt in de code waardoor hij de andere blokt. Zelf heb ik weinig verstand van javascript dus dacht ik vraag het hier. script 1 staat op index.php in de header en script 2 in de body van invoerbedrijven.php (dit maakt verder ook geen verschil hij doet het ook niet in de header).
Ik zie alleen deze foutmelding bij script 2 op de site:

Regel: 13
Teken: 1
fout: id word verwacht
code: 0
URL: http://index.php?pagina=invoerbedrijven

Alvast bedankt voor de moeite,

Nils van Woensel

Hier script 1 dropdownmenu:

<script type="text/javascript">




var menu1=new Array()
menu1[0]='<a href="index.php?pagina=invoerbedrijven">Invoer</a>'
menu1[1]='<a href="index.php?pagina=wijzigbedrijven">Wijzig</a>'
menu1[2]='<a href="index.php?pagina=verwijderbedrijven">Verwijder</a>'
menu1[3]='<a href="index.php?pagina=overzichtbedrijven">Overzicht</a>'


var menu2=new Array()
menu2[0]='<a href="index.php?pagina=invoerdocumenten">Invoer</a>'
menu2[1]='<a href="index.php?pagina=wijzigdocumenten">Wijzig</a>'
menu2[2]='<a href="index.php?pagina=verwijderdocumenten">Verwijder</a>'

var menu3=new Array()
menu3[0]='<a href="index.php?pagina=invoerpersoneel">Invoer</a>'
menu3[1]='<a href="index.php?pagina=wijzigpersoneel">Wijzig</a>'
menu3[2]='<a href="index.php?pagina=verwijderpersoneel">Verwijder</a>'

var menu4=new Array()
menu4[0]='<a href="index.php?pagina=invoerprojecten">Invoer</a>'
menu4[1]='<a href="index.php?pagina=wijzigprojecten">Wijzig</a>'
menu4[2]='<a href="index.php?pagina=verwijderprojecten">Verwijder</a>'

var menu5=new Array()
menu5[0]='<a href="index.php?pagina=documentoverzicht">Overzicht documenten</a>'
menu5[1]='<a href="index.php?pagina=documentproject">Documenten toevoegen</a>'
menu5[2]='<a href="index.php?pagina=documentbedrijf">Bedrijven toevoegen</a>'
menu5[3]='<a href="index.php?pagina=documentverzendbrief">Verzendbrief</a>'


var menu6=new Array()
menu6[0]='<a href="index.php?pagina=documentinboeken">Inboeken</a>'
menu6[1]='<a href="controle.php">Controle</a>'


var menuwidth='165px' //default menu width
var menubgcolor='#f2edb3' //menu bgcolor
var disappeardelay=250 //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes" //hide menu when user clicks within menu?

/////No further editting needed

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}


function showhide(obj, e, visible, hidden, menuwidth){
if (ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top="-500px"
if (menuwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=menuwidth
}
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
obj.visibility=visible
else if (e.type=="click")
obj.visibility=hidden
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=0
if (whichedge=="rightedge"){
var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
}
else{
var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset
var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure){ //move up?
edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) //up no good either?
edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge
}
}
return edgeoffset
}

function populatemenu(what){
if (ie4||ns6)
dropmenuobj.innerHTML=what.join("")
}


function dropdownmenu(obj, e, menucontents, menuwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemenu()
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
populatemenu(menucontents)

if (ie4||ns6){
showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
}

return clickreturnvalue()
}

function clickreturnvalue(){
if (ie4||ns6) return false
else return true
}

function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}

function dynamichide(e){
if (ie4&&!dropmenuobj.contains(e.toElement))
delayhidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenu()
}

function hidemenu(e){
if (typeof dropmenuobj!="undefined"){
if (ie4||ns6)
dropmenuobj.style.visibility="hidden"
}
}

function delayhidemenu(){
if (ie4||ns6)
delayhide=setTimeout("hidemenu()",disappeardelay)
}

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

if (hidemenu_onclick=="yes")
document.onclick=hidemenu



</script>


Hier script 2 show/hide

<var state = 'hidden';

function showhide(layer_ref) {

if (state == 'visible') {
state = 'hidden';
}
else {
state = 'visible';
}
if (document.all) { //IS IE 4 or 5 (or 6 beta)
eval( "document.all." + layer_ref + ".style.visibility = state");
}
if (document.layers) { //IS NETSCAPE 4 or below
document.layers[layer_ref].visibility = state;
}
if (document.getElementById && !document.all) {
maxwell_smart = document.getElementById(layer_ref);
maxwell_smart.style.visibility = state;
}
}
 
Laatst bewerkt:
Dan moet je met de namen vogelen.
Scripts snappen het nu niet.
voor ieder script moet je unieke namen gebruiken.
bv
naam_een
moet je in script twee
naam_twee noemen

Dus doorlopen wat aangepast moet worden.
uiteraard bij het aanroepen ook de juiste namen gebruiken.

Anders:
het menu als include gebruiken.
Heb je dus maar één menu nodig.
Lijkt mij in dit geval beter.

:cool;
 
Ik zal eens de code uitprinten en kijken maar ik zie alleen nu van document.all dubbel staan zo snel. Moet dat dan maar 1 x voorkomen of moet ik andere naam aanmaken ?

Ik heb deze dubbele dingen gevonden. Ik weet alleen niet precies wat ik aan moet passen. Zou iemand dat even hier neer kunnen zetten. Alvast bedankt.

Nilis

Hier de zelfde dingen:

Script 1
function showhide(obj, e, visible, hidden, menuwidth){
Script2:
function showhide1(layer_ref) {

Script 1
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
populatemenu(menucontents)

Script2:
if (document.getElementById && !document.all) {
maxwell_smart = document.getElementById(layer_ref);
maxwell_smart.style.visibility = state;
}

Script 1:
var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')

Script 2:

if (document.all) { //IS IE 4 or 5 (or 6 beta)
eval( "document.all." + layer_ref + ".style.visibility = state");
}
 
Laatst bewerkt:
Ik heb 2 javascripts op de pagina die tegelijk worden uitgevoerd.
De site is zo ingedeelt. De index.php pagina is overal hetzelfde en de andere pagina's worden in een div ingeladen in het content gedeelte.
Je hebt het nu zo:
PHP:
<!-- index.php?pagina=invoerbedrijven -->
 javascriptmenu
 <div>
  <!-- invoerbedrijven.php -->
    javascriptmenu
    ........
  <!-- / invoerbedrijven.php -->
 </div>
 ........
<!-- / index.php?pagina=invoerbedrijven -->
Maar waarom twee keer hetzelfde menu? Alleen het menu in index.php gebruiken is toch genoeg. :)

Als je wilt dat invoerbedrijven.php ook als aparte pagina geopent kan worden en dat het dan wel een menu heeft kun je (iets als) dit gebruiken:
PHP:
<!-- invoerbedrijven.php -->
<?php
 if ($_GET == null) include("javascriptmenu.php");
?>
<!-- / invoerbedrijven.php -->


Vr.Gr. Egel.
 
Laatst bewerkt:
O sorry stom van mij heb ik 2x dezelfde code erbij gepost. Ik heb het nu aangepast. de 2e keer zoals in mijn eerste bericht nu te zien is zit het menu er niet bij maar het probleem blijft dus hetzelfde. Sorry voor mijn fout:o

Iemand enig idee wat ik in het 2e script moet veranderen zodat deze met elkaar werken. Een ander javascript werkt wel met mijn menu script maar deze niet :(

script2:

<var state = 'hidden';

function showhide(layer_ref) {

if (state == 'visible') {
state = 'hidden';
}
else {
state = 'visible';
}
if (document.all) { //IS IE 4 or 5 (or 6 beta)
eval( "document.all." + layer_ref + ".style.visibility = state");
}
if (document.layers) { //IS NETSCAPE 4 or below
document.layers[layer_ref].visibility = state;
}
if (document.getElementById && !document.all) {
maxwell_smart = document.getElementById(layer_ref);
maxwell_smart.style.visibility = state;
}
}
 
Laatst bewerkt:
Ik denk in je 2e pagina overal showhide( vervangen door toggle(

Met ctrl-h in wordpad is dat goed te doen. :)


Vr.Gr. Egel.
 
Je bent geweldig;)
Ik had het zelf ook geprobeerd alleen had het alleen op de pagina contact.js aagepast en dat werkte niet dus ik d8 zal wel niet werken.

Nu jij het zei ging ik wat verder kijken en bleek op de pagina invoerbedrijven.php ook nog eens showhide te staan.

Super bedankt !!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan