1) Find bredde på div vha. ovenstående. 2) Send clientWidth via AJAX til en ASP, der ligger clientWidth i en ASP session, der så kan bruges af loopet efterfølgende 3) Denne session, vil så blive overskrevet og genbrugt ved et nyt kald.
Hvordan kommer de til at se ud i den endelige markup, når menuen er genereret ?-)
-- for så kan genereringen af menuen bare afsluttes med, at du sætter det på !-)
-- er det ikke coolmenu, du arbejder med, for så kan vi jo prøve os frem med id eller class !o]
Alle id'er i en sådan starter med oM (oMbbar, oMbbar_0, oM_m1_0, oM_m1, oM_cat_0, oM_cat osv.), alle klasser starter med menu på det overordnede plan (menu_dhtml, menuborder, menu), mens der på underordnede planer findes submenu og clCMAbs ...
---- START ---- set rsgetCategories_level1 = conn.execute("select * from WebCategories where level=1 and Code in (select catlevel1 from WebCategoriesLink) order by Code asc")
if not rsgetCategories_level1.eof then do while not rsgetCategories_level1.eof
'--> cmString for Level 1 cmString = cmString & "oCMenu.makeMenu('top"&rsgetCategories_level1("Code")&"','','"&rsgetCategories_level1("Caption")&"','?c1="&rsgetCategories_level1("Code")&"','','[Bredde]');" & vbCrLf '--> cmString for Level 1
-- jeg tror ved nærmere eftertanke, at du er nødt til at hente værdien fra browseren og så sende en request tilbage, for coolmenu beregner absolutte placeringer ...
-- altså sender du først et minimalt dokument, hvor du beregner bredden, og så omdirigerer til den rigtige side f.eks. med en get-parameter:
set rsgetCategories_level1 = conn.execute("select * from WebCategories where level=1 and Code in (select catlevel1 from WebCategoriesLink) order by Code asc")
if not rsgetCategories_level1.eof then do while not rsgetCategories_level1.eof Response.Write("<div style='padding:0px;position:absolute; visibility:hidden;' id=""CatId_"&rsgetCategories_level1("Code")&""">"&rsgetCategories_level1("Caption")&"</div>") & vbCrLf response.Write("<script>") & vbCrLf response.Write("var divWidth = document.getElementById(""CatId_"&rsgetCategories_level1("Code")&""").clientWidth;") & vbCrLf response.Write("var myConn = new XHConn();") & vbCrLf response.Write("if (!myConn) alert(""XMLHTTP not available. Try a newer/better browser."");") & vbCrLf response.Write("var fnWhenDone = function (emptyfn) { };") & vbCrLf response.Write("myConn.connect(""_includes/ajaxActions.asp?ajaxAction=initCmMenu"" , ""POST"" , ""divID=CatId_"&rsgetCategories_level1("Code")&"&menuwidth=""+divWidth , fnWhenDone);") & vbCrLf response.Write("</script>") & vbCrLf rsgetCategories_level1.movenext loop end if
rsgetCategories_level1.close set rsgetCategories_level1 = nothing
ajaxActions.asp?ajaxAction=initCmMenu opretter en session med bredden.
Vil du ikke oprette et svar, så du kan få points for din sparring.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.