06. januar 2003 - 10:31
Der er
18 kommentarer og 1 løsning
Updatering af Iframes
Hej Eksperter, Jeg har en servlet som returnerer noget HTML. Jeg har de to Iframes som jeg bruger til at indeholde min navigationsmenu og den anden til indeholdet. Mit spørgsmål er om det er en måde at undgå at loade menuen hver gang man trykker på en knap i den. Kan man med andre ord lave det så menuen bare bliver stående, mens indholdet ændre sig? out.println("<table border='0'>"); out.println("<tr><td width='30%'>"); out.println("</td><td width='70%'>"); out.println("<iframe src ='Menu' ALLOWTRANSPARENCY=\"true\" frameborder='0' scrolling='no' align='top' width='490' height='30'>"); out.println("</iframe>"); out.println("</td></tr>"); out.println("<tr><td colspan='2'>"); out.println("<iframe src ='Startdata' ALLOWTRANSPARENCY=\"true\" frameborder='0' width='700' height='250'>"); out.println("</iframe>"); out.println("</td></tr></table>");
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
06. januar 2003 - 10:33
#1
knapperne i menuen ser således ud <input type='button' class='button' name='news' value='News' onmouseover=\"this.className = 'buttonHover';\" onmouseout=\"this.className = 'button';\">
06. januar 2003 - 10:40
#2
Jeg forestiller mig et eller andet med Onclick. Jeg har navngivet de to Iframes. Den første hedder menu og den anden content.
06. januar 2003 - 10:49
#3
Kan man gøre noget i denne her retning? Onclick="parent.content.location.href=\"nytindhold\"
06. januar 2003 - 11:00
#4
Onclick=\"document.all(\"content\").src=\"nytindhold\"\"
06. januar 2003 - 11:01
#5
out.println("<td><input type='button' class='button' name='news' value='News' onmouseover=\"this.className = 'buttonHover';\" onmouseout=\"this.className = 'button';\" Onclick=\"document.all(\"content\").src=\"nytindhold\"\"></td>");
06. januar 2003 - 11:08
#6
out.println("<td><input type='button' class='button' name='news' value='News' onmouseover=\"this.className = 'buttonHover';\" onmouseout=\"this.className = 'button';\" onclick=\"document.all('content').src='nytindhold'\"></td>"); Jeg får en scriptfejl som siger at dokument.all enten er null eller ikke et objekt
06. januar 2003 - 11:19
#7
Når jeg får menuen tilbage fra servleten ser den således ud <html><head> <link rel='stylesheet' type='text/css' href='../style/styles.css'> <style> body { background:transparent;margin:0000;} </style> </head> <body> <table border='0' cellpadding='0' cellspacing='0'><tr> <td><input type='button' class='button' name='news' value='News' onmouseover="this.className = 'buttonHover';" onmouseout="this.className = 'button';" onclick="document.all('content').src='Startdata'"></td> <td><input type='button' class='button' name='' value='' onmouseover="this.className = 'buttonHover';" onmouseout="this.className = 'button';"></td> <td><input type='button' class='button' name='Credit' value='Credit' onmouseover="this.className = 'buttonHover';" onmouseout="this.className = 'button';"></td> <td><input type='button' class='button' name='Contact' value='Contact' onmouseover="this.className = 'buttonHover';" onmouseout="this.className = 'button';"></td> <td><input type='button' class='button' name='Guestbook' value='Guestbook' onmouseover="this.className = 'buttonHover';" onmouseout="this.className = 'button';"></td> </tr></table> </body> </html>
06. januar 2003 - 12:12
#8
onclick="document.all['content'].location.href='nytindhold.html'"
06. januar 2003 - 12:17
#9
Jeg er bange for at det heller ikke virker :-(
06. januar 2003 - 12:18
#10
den pågældende IFrame ligger ikke på den samme side. Kan det være det som er galt?
06. januar 2003 - 12:25
#11
klassen som danner menuen ser således ud import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class Menu extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out; response.setContentType("text/html"); out = response.getWriter(); out.println("<html><head>"); out.println("<link rel='stylesheet' type='text/css' href='../style/styles.css'>"); out.println("<style>"); out.println("body { background:transparent;margin:0000;}"); out.println("</style>"); out.println("</head>"); out.println("<body>"); out.println("<table border='0' cellpadding='0' cellspacing='0'><tr>"); out.println("<td><input type='button' class='button' name='news' value='News' onmouseover=\"this.className = 'buttonHover';\" onmouseout=\"this.className = 'button';\" onclick=\"document.all['content'].location.href='Startdata'\"></td>"); out.println("<td><input type='button' class='button' name='the Mrtls' value='the Mrtls' onmouseover=\"this.className = 'buttonHover';\" onmouseout=\"this.className = 'button';\"></td>"); out.println("<td><input type='button' class='button' name='Credit' value='Credit' onmouseover=\"this.className = 'buttonHover';\" onmouseout=\"this.className = 'button';\"></td>"); out.println("<td><input type='button' class='button' name='Contact' value='Contact' onmouseover=\"this.className = 'buttonHover';\" onmouseout=\"this.className = 'button';\"></td>"); out.println("<td><input type='button' class='button' name='Guestbook' value='Guestbook' onmouseover=\"this.className = 'buttonHover';\" onmouseout=\"this.className = 'button';\"></td>"); out.println("</tr></table>"); out.println("</body>"); out.println("</html>"); out.close(); } } Grunden til at jeg har lavet det sådan er fordi jeg regner med at bygge en database på senere.
06. januar 2003 - 12:30
#12
Det her en siden som indeholder Iframes import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class Start extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out; response.setContentType("text/html"); out = response.getWriter(); out.println("<html><head><title>Start</title>"); out.println("<link rel='stylesheet' type='text/css' href='../style/styles.css'>"); out.println("</head>"); out.println("<body>"); out.println("<div class='margin1'>"); out.println("<table border='0'>"); out.println("<tr><td width='30%'>"); out.println("</td><td width='70%'>"); out.println("<iframe name='menu' src ='Menu' ALLOWTRANSPARENCY=\"true\" frameborder='0' scrolling='no' align='top' width='490' height='30'>"); out.println("</iframe>"); out.println("</td></tr>"); out.println("<tr><td colspan='2'>"); out.println("<iframe name='content' src ='Startdata' ALLOWTRANSPARENCY=\"true\" frameborder='0' width='700' height='250'>"); out.println("</iframe>"); out.println("</td></tr></table>"); out.println("</div>"); out.println("</body>"); out.println("</html>"); out.close(); } }
06. januar 2003 - 12:31
#13
Jeg gør åbenbart et eller andet helt forkert :-( (Har jeg misforstået hvordan Iframes kan bruges??)
06. januar 2003 - 19:54
#14
Du skal ikke bruge document.all med mindre du KUN laver til IE (og dog også Opera)..du kan gøre dette på knappen: onclick="parent.frames['content'].location.href='dinside.html'" ..dette åbner "dinside.html" i framen content på parent ... altså den side hvori dine frames er defineret
06. januar 2003 - 20:41
#15
<ole> mikmakmuk >> Til din kommentar (06/01-2003 12:18:29): Ja, der har du problemet, men lad os se en URL, så vi kan hjælpe dig uden at skulle lege Lykkehjulet ;o) En anden ting er din måde at skrive koden ud på f.eks: PrintWriter out; response.setContentType("text/html"); out = response.getWriter(); ... bla bla bla bla bla bla bla ... out.println("</div>"); out.println("</body>"); out.println("</html>"); out.close(); Nu er jeg ikke stiv i Java, men i andre sprog er det en meget dårligt performende måde at gøre det på. I stedet for at skrive hver linie ud, bør du samle de enkelte linier i én streng og skrive den ud til sidst. Det går voldsomt meget hurtigere. Du kan også lave et array og fylde 'stumperne' ind som elementer i dette. Til sidst join'er du array'et om en newline og udskriver den resulterende streng. I JavaScript er denne metode som oftest op til flere hundrede gange hurtigere end streng-metoden - som igen er tilsvarende hurtigere end at udskrive de enkelte linier, hver for sig. Se, dét kan man kalde performance-forbedring ;o) /mvh </bole>
06. januar 2003 - 20:45
#16
Ups ... jeg kan se, smirnoff løste problemet med adresseringen ... det overså jeg - men prøv at optimere din kode på den måde, jeg anviste. Det vil gøre dit program væsentlig hurtigere ;o) /mvh
07. januar 2003 - 01:41
#17
Olebole har helt ret mht performance... En helt tredie ting kunne være at benytte en StringBuffer Så vidt jeg husker : StringBuffer buffer = new StringBuffer(); buffer.append("<html><head><title>Start</title>"); ... out.println(buffer.toString());
07. januar 2003 - 02:00
#18
Mmmmmmm ....... med hjælp fra smirnoff behøver man ikke være stiv i Java - eller nohoget andet schprrog ...... dset kjhommer hhhelt af schig schhelv ... *hik*! *-\
07. januar 2003 - 10:24
#19
hehe - nemlig derfor har jeg det handle... :)
Vi tilbyder markedets bedste kurser inden for webudvikling