[JavaScript] ')' error *

Pagina: 1
Acties:

  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
Hallo dames heren,

kep maar een klein probleempje

Ik ga met tabbladen werken, waarbij ik deze JavaScript code heb:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<html>
 <head>
  <style>
    body {
    font-family  : arial, helvetica;
    }

    .Tab {
    border-bottom    : 2px solid #000000;
    border-left      : 2px solid #777777;
    border-right     : 2px solid #000000;
    border-top   : 2px solid #777777;
    background-color : #000000;
    cursor       : default;
    color        : #ffffff;
    text-align   : center;
    } 

    .Selected {
    border-left      : 2px solid #777777;
    border-right     : 2px solid #000000;
    border-top   : 2px solid #777777;
    background-color : #cc0000;
    cursor       : default;
    color        : #ffffff;
    text-align   : center;
    font-weight  : bold;
    }

    #Tabbottom {
    border-bottom    : 2px solid #000000;
    border-left      : 2px solid #777777;
    border-right     : 1px solid #000000;
    line-height      : 5px;
    background-color : #ffcc00;
    }
  </style>
 </head>

 <body>

 <script type="text/javascript">

  var CurTab = null;

  // **************************************
  // TabContainer + Tabbladen Objecten
  // **************************************

  function TabContainer() {

    this.width      = "500";
    this.tabs = [];
  }

  TabContainer.prototype.Build = function() {
  var s = "";
  var w = (this.width/5);   //Dus max 5 tabs...

    if (this.tabs) {
        s+= "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" OnSelectStart=\"return false;\" width=\"" + this.width + "\"><tr>";
        for (i=0; i<this.tabs.length; i++) {
            s+= "<td class=\"Tab\" id=\"tab" + i + "\" width=\"" + w + "\" onclick=\"SelectTab(tab" + i + ");\">" + this.tabs[i].Label + "</td>";
        }
        s+= "<td id =\"EmptyCell\">&nbsp;</td>";
        s+= "</tr><tr><td id=\"Tabbottom\" colspan=\"" + (this.tabs.length+1) + "\">&nbsp;</td>";
        s+= "</tr><td colspan=\"" + (this.tabs.length+1) + "\"><div id=\"inhoud\"></div></td>";
        s+= "</tr></table>";
    }

    /*alert(s);*/
    document.write(s);
  }

  TabContainer.prototype.AddTab = function() {
    this.tabs[this.tabs.length] = new Tab(arguments[0],arguments[1]);
  }

  function Tab() {
    this.Label  = arguments[0];
    this.Content    = arguments[1];
}

  // **************************************
  // General functions
  // **************************************

  function SelectTab(TheTab) {
    if (CurTab) {
        var oldTab = CurTab;
        CurTab = null;
        HighLightTab(('tab' + oldTab),false);
        CurTab = oldTab;
    }

    if ( ('tab' + CurTab) != TheTab.id) {
        CurTab = TheTab.id.substring(3,TheTab.id.length);
        HighLightTab(('tab' + CurTab),true);

        //Hier moet schrijven inhoud komen!!!!
        document.all['inhoud'].innerHTML = MyTabs.tabs[CurTab].Content;
    }

  }

  function HighLightTab( tabID, selected ) {
    getObj(tabID).className = selected ? "Selected" : "Tab";
  }

  function getObj(id){
      if(document.getElementById) return document.getElementById(id);
      else if(document.all) return document.all[id];
      else if(document.layers) return findObj(id,document);
  }


  function findObj(id,d){
      for(var i=0;i<d.layers.length;i++){
            var obj=d.layers[i];
            if(obj.name==id) return obj;
            if(obj.document.layers.length>0){      
                  obj=findObj(id,obj.document);
                  if(obj!=null) return obj;
            }
      }
      return null;
  }

  // **************************************
  // Create the TabContainer
  // **************************************

  MyTabs = new TabContainer();

    with(MyTabs) {
        AddTab("Metagegevens","Metagegevens van een document");
        AddTab("Zoekresultaat","De resultaten van de zoekactie");
        AddTab("Document","Hier wordt het document weergegeven");
        AddTab("Zoekcriteria","De criteria waarop de gebruiker heeft gezocht");
        AddTab("Wijzigen metagegevens","Wijzigen van de metagegevens van een document");

        Build();
    }

  </script>

</body>

</html>


Deze code werkt volledig. Gewoon copy-paste en runnen maar, kun je zelf testen.
Nu zie je helemaal onderaan bij de AddTab() methode dat er 2 strings staan: de eerste is het kopje van de tab, de tweede de inhoud. Nu wil ik in die 2e string als inhoud simpelweg een complete tabel zetten.
Zoiets dus:

code:
1
AddTab("Metagegevens","<table><form action='SomeAction">Metagegevens van een document'</form></table>");


Jullie zien dat ik een form in de tabel pleur. Dit lukt ook wel, geen probleem. Maar zodra ik daar een struts-form van maak (HTML:FORM), krijg ik van Internet explorer zelf een fout.

Dan zegt ie dat ie een ' ) ' verwacht direct na de b in het woordje TABLE.
Misschien is dit een fout van JavaScript en de custom strutstags.....
Weet iemand hoe ik dit kan oplossen?

[ Voor 22% gewijzigd door Deathchant op 23-08-2004 12:56 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Ik weet niet wat voor ouput die struts tag geeft, maar het lijkt me dat daar iets fout in gaat.

  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
André schreef op 23 augustus 2004 @ 13:00:
Ik weet niet wat voor ouput die struts tag geeft, maar het lijkt me dat daar iets fout in gaat.
Ja misschien ligt het aan de dubbele punt, ik weet het ook niet, daarom post ik het. Het is gewoon een form, alleen dan een strutsform met de HTML: ervoor.

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

ik denk dat het een kwestie is van niet-geescapede quotes in de struts-output wat natuurlijk mis gaat als je het in een JS-string wilt stoppen ;)

Intentionally left blank


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
de quotes zijn goed. Ik heb ze allemaal gecheckt. De fout krijg ik als ik struts gebruik in een JS-String

[ Voor 37% gewijzigd door Deathchant op 23-08-2004 13:59 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

hoe ziet de uiteindelijke source er dan uit? (view->source in je browser)

Intentionally left blank


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
geen tabblad, maar ik zie de javascript code van de AddTag aanroep en een geel driehoekje linksonder in beeld en zegt dan dat ie ')' verwacht

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

En hoe ziet die regel er nu precies uit?

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Deathchant schreef op 23 augustus 2004 @ 14:46:
geen tabblad, maar ik zie de javascript code van de AddTag aanroep en een geel driehoekje linksonder in beeld en zegt dan dat ie ')' verwacht
Da's geen antwoord op crisp z'n vraag ;) Geef eens een stuk Source-code?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ page contentType="text/html;charset=windows-1252"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Metadata toevoegen</title>
<!--show tabs with a preview of the selected document -->
<link rel="stylesheet" type="text/css" href="css/tabs.css"/>
</head>
<body>
  <FONT face="Verdana">
    <script type="text/javascript">

  var CurTab = null;

  // **************************************
  // TabContainer + Tabbladen Objecten
  // **************************************

  function TabContainer() {

    this.width      = "600";
    this.tabs = [];
  }

  TabContainer.prototype.Build = function() {
  var s = "";
  var w = (this.width/2);   //Dus max 5 tabs...

    if (this.tabs) {
        s+= "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" OnSelectStart=\"return false;\" width=\"" + this.width + "\"><tr>";
        for (i=0; i<this.tabs.length; i++) {
            s+= "<td class=\"Tab\" id=\"tab" + i + "\" width=\"" + w + "\" onclick=\"SelectTab(tab" + i + ");\">" + this.tabs[i].Label + "</td>";
        }
        s+= "<td id =\"EmptyCell\">&nbsp;</td>";
        s+= "</tr><tr><td id=\"Tabbottom\" colspan=\"" + (this.tabs.length+1) + "\">&nbsp;</td>";
        s+= "</tr><td colspan=\"" + (this.tabs.length+1) + "\"><div id=\"inhoud\"></div></td>";
        s+= "</tr></table>";
    }   
    document.write(s);  
  }

  TabContainer.prototype.AddTab = function() {
    this.tabs[this.tabs.length] = new Tab(arguments[0],arguments[1]);
  }

  function Tab() {
    this.Label  = arguments[0];
    this.Content    = arguments[1];
}

  // **************************************
  // General functions
  // **************************************

  function SelectTab(TheTab) {
    if (CurTab) {
        var oldTab = CurTab;
        CurTab = null;
        HighLightTab(('tab' + oldTab),false);
        CurTab = oldTab;
    }

    if ( ('tab' + CurTab) != TheTab.id) {
        CurTab = TheTab.id.substring(3,TheTab.id.length);
        HighLightTab(('tab' + CurTab),true);

        //Hier moet schrijven inhoud komen!!!!
        document.all['inhoud'].innerHTML = MyTabs.tabs[CurTab].Content;
    }

  }

  function HighLightTab( tabID, selected ) {
    getObj(tabID).className = selected ? "Selected" : "Tab";
  }

  function getObj(id){
      if(document.getElementById) return document.getElementById(id);
      else if(document.all) return document.all[id];
      else if(document.layers) return findObj(id,document);
  }


  function findObj(id,d){
      for(var i=0;i<d.layers.length;i++){
            var obj=d.layers[i];
            if(obj.name==id) return obj;
            if(obj.document.layers.length>0){      
                  obj=findObj(id,obj.document);
                  if(obj!=null) return obj;
            }
      }
      return null;
  }

  // **************************************
  // Create the TabContainer
  // **************************************

  MyTabs = new TabContainer();

    with(MyTabs) {
        AddTab("Metadata toevoegen","<table><html:form action='DocAndMDataSaveAction.do' focus='registrationDate'><tr><td background='images/w_tableBGImage.jpg' colspan='2'><FONT face="Verdana" size="2"><STRONG>Metadata toevoegen</STRONG></FONT></td></tr><tr><td>Registratiedatum</td><td><bean:define id='registrationDate' scope='session' name='dib' property='registrationDate' /><html:text property='registrationDate' value='<%=registrationDate%>' readonly='true' /></td></tr><tr><td>Briefdatum</td><td><html:text property='sentDate' value='' /></td></tr><tr><td>Inhoud</td><td><html:text property='content' value='' /></td></tr><tr><td>Content type</td><td><bean:define id='contentType' scope='session' name='dib' property='contentType' /><html:text property='contentType' value='<%=contentType%>' readonly='true' /></td></tr><tr><td>Bestandsgrootte</td><td><bean:define id='fileSize' scope='session' name='dib' property='fileSize' /><html:text property='fileSize' value='<%=fileSize%>' readonly='true' /></td></tr><tr><td>Referentiekenmerk</td><td><html:text property='reference' value='' /></td></tr><tr><td>Document naam</td><td><bean:define id='fileName' scope='session' name='dib' property='fileName' /><html:text property='fileName' value='<%=fileName%>' readonly='true' /></td></tr><tr><td><html:submit value='Invoeren document' /></td><td><html:button property='clear' value='Leeg velden' /></html:form></td></tr>");
        AddTab("Preview Document","Preview: <br /><tr><td><html:link action='GoToPreviewAction.do' >Preview Document</html:link></td></tr></table>");
        
    Build();
    }
</script>
</body>
</html>


Output: http://home.planet.nl/~barth076/result.jpg

De regel waarin de haak wordt verwacht: http://home.planet.nl/~barth076/regel 60.jpg

zoals het uit moet komen te zien: http://home.planet.nl/~barth076/3.jpg

daar waar nu staat metadata toevoegen moet dus die hele tabel komen met al die velden wat eronder staat

[ Voor 71% gewijzigd door Deathchant op 23-08-2004 15:06 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06:53

gorgi_19

Kruimeltjes zijn weer op :9

Allemaal clientside...

>> Webdesign & Graphics

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

JavaScript:
1
AddTab("Metadata toevoegen","<table><html:form .....<FONT face="Verdana" size="2">.....");

die quotes in je font-tag (bah, font-tags ;) ) gaan natuurlijk fout --> of enkele quotes van maken of escapen. Verder betwijfel ik of dit gaat werken; die struts code gaat natuurlijk never nooit uitgevoerd worden.

Intentionally left blank


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
crisp schreef op 23 augustus 2004 @ 15:06:
JavaScript:
1
AddTab("Metadata toevoegen","<table><html:form .....<FONT face="Verdana" size="2">.....");

Verder betwijfel ik of dit gaat werken; die struts code gaat natuurlijk never nooit uitgevoerd worden.
Die quotes had ik al verbeterd idd, pas nadat ik op ftp gezet had perongeluk....
Maar waarom gaat de strutscode never nooit goed?

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

omdat het serverside code is en je clientside bezig bent.

Intentionally left blank


Verwijderd

Deathchant schreef op 23 augustus 2004 @ 15:11:
[...]


Die quotes had ik al verbeterd idd, pas nadat ik op ftp gezet had perongeluk....
Maar waarom gaat de strutscode never nooit goed?
Omdat je het naar een JS-string rendert. Die wordt pas client-side samengesteld en wordt dus door de server genegeerd...

  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
als ik op die pagina naar de source kijk zie ik dat de struts elementen (html:form)wel goed gedisplayed worden in de code:

with(MyTabs) {
AddTab("Metadata toevoegen","<table><form name="SomeActionForm" method="post" ..............

[ Voor 15% gewijzigd door Deathchant op 23-08-2004 15:21 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
ja hoe moet ik het dan oplossen ? Ik weet het echt niet meer nu
ik moet per tabblad een strutsform hebben. Ik moet deze namelijk aan acties koppelen om alle invoervelden in het form door te sturen

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

Deathchant schreef op 23 augustus 2004 @ 15:21:
als ik op die pagina naar de source kijk zie ik dat de struts elementen (html:form)wel goed gedisplayed worden in de code:

with(MyTabs) {
AddTab("Metadata toevoegen","<table><form name="SomeActionForm" method="post" ..............

oh, dus die vorige lap code was niet de gerenderde versie waar we om vroegen? :( ;)
Maar anyway, zoals je ziet heb je alsnog problemen met de quotes. Als je mazzel hebt zitten er enkel dubbele quotes in de gegenereerde struts-code en zou je het met single quotes kunnen omsluiten.

[ Voor 3% gewijzigd door crisp op 23-08-2004 15:31 ]

Intentionally left blank


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
crisp schreef op 23 augustus 2004 @ 15:29:

[...]

oh, dus die vorige lap code was niet de gerenderde versie waar we om vroegen? :( ;)
Maar anyway, zoals je ziet heb je alsnog problemen met de quotes. Als je mazzel hebt zitten er enkel dubbele quotes in de gegenereerde struts-code en zou je het met single quotes kunnen omsluiten.
Nee dat ene stukje code dat was hoe ik het geprogrammeerd had. Mijn vorige post was het stukje code NA uitvoering en de source code daarvan, dus de gerenderde.
De quotes zijn allemaal goed hoor. Kep alleen singlequotes gebruikt.
En bij de gerenderde zie ik inderdaad allemaal dubbelquotes........dan moet ik eens ff verder kijken

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
inderdaad het werd gerenderd in dubbel quotes waardoor ik dus 2x dubbel quotes had.

nu heb ik het zo:

Java:
1
2
with(MyTabs) {
        AddTab('Metadata toevoegen','<table><html:form action="DocAndMDataSaveAction.do" focus="registrationDate"><tr><td background="images/w_tableBGImage.jpg" colspan="2"><FONT face="Verdana" size="2"><STRONG>Metadata toevoegen</STRONG></FONT></td></tr><tr><td>Registratiedatum</td><td><bean:define id="registrationDate" scope="session" name="dib" property="registrationDate" /><html:text property="registrationDate" value="<%=registrationDate%>" readonly="true" /></td></tr><tr><td>Briefdatum</td><td><html:text property="sentDate" value="" /></td></tr><tr><td>Inhoud</td><td><html:text property="content" value="" /></td></tr><tr><td>Content type</td><td><bean:define id="contentType" scope="session" name="dib" property="contentType" /><html:text property="contentType" value="<%=contentType%>" readonly="true" /></td></tr><tr><td>Bestandsgrootte</td><td><bean:define id="fileSize" scope="session" name="dib" property="fileSize" /><html:text property="fileSize" value="<%=fileSize%>" readonly="true" /></td></tr><tr><td>Referentiekenmerk</td><td><html:text property="reference" value="" /></td></tr><tr><td>Document naam</td><td><bean:define id="fileName" scope="session" name="dib" property="fileName" /></td></tr><tr><td><html:submit value="Invoeren document" /></td><td><html:button property="clear" value="Leeg velden" /></html:form></td></tr>');

maar krijg de melding dat een tekenreeksconstante niet is afgesloten.... :( Ik kan dus NIKS vinden

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

post eens die regel van de gerenderde versie

Intentionally left blank


  • André
  • Registratie: Maart 2002
  • Laatst online: 18-05 16:30

André

Analytics dude

Het is ook wel een ranzige manier om op die manier een tab te maken: een functie aanroepen met een complete html pagina als argument. En het is ook niet DOM compatible aangezien dit waarschijnlijk met innerHTML neergeplempt word :)

  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
ja ik weet dat het niet netjes is, maar ik heb maar tot woensdag.
gerenderde regel:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
with(MyTabs) {
        AddTab('Metadata toevoegen','<table><form name="SomeActionForm" method="post" action="/verkorte_registratie-ViewController-context-root/SomeAction.do"><input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="14645198e01d48d363d2e74869d15960"><tr><td background="images/w_tableBGImage.jpg" colspan="2"><FONT face="Verdana" size="2"><STRONG>Metadata toevoegen</STRONG></FONT></td></tr><tr><td>Registratiedatum</td><td><input type="text" name="registrationDate" value="23-08-2004" readonly="readonly"></td></tr><tr><td>Briefdatum</td><td><input type="text" name="sentDate" value=""></td></tr><tr><td>Inhoud</td><td><input type="text" name="content" value=""></td></tr><tr><td>Content type</td><td><input type="text" name="contentType" value="image/pjpeg" readonly="readonly"></td></tr><tr><td>Bestandsgrootte</td><td><input type="text" name="fileSize" value="60366" readonly="readonly"></td></tr><tr><td>Referentiekenmerk</td><td><input type="text" name="reference" value=""></td></tr><tr><td>Document naam</td><td></td></tr><tr><td><input type="submit" value="Invoeren document"></td><td><input type="button" name="clear" value="Leeg velden"></form>
<script type="text/javascript" language="JavaScript">
  <!--
  var focusControl = document.forms["SomeActionForm"].elements["registrationDate"];

  if (focusControl.type != "hidden") {
     focusControl.focus();
  }
  // -->
</script>
</td></tr>');

[ Voor 34% gewijzigd door Deathchant op 23-08-2004 16:30 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

aha, je hebt dus geen probleem met quotes meer, maar wel met newlines ;)

Tenzij je de output van struts kan beinvloeden (ervoor zorgen dat er geen newlines in de gegenereerde code zitten) denk ik niet dat je dit makkelijk kan oplossen.

[ Voor 54% gewijzigd door crisp op 23-08-2004 16:37 ]

Intentionally left blank


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
new lines? hij maakt gewoon 1 regel met al die dingen erin, en snap niet waarom dit een probleem zou moeten zijn.
Hij vult gewoon de struts-dingen met de gerenderde waarde.

Merk op dat het onderste javascriptje een script is voor de focus attribuut in de struts-formtag

[ Voor 42% gewijzigd door Deathchant op 23-08-2004 16:43 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

ja, newlines; dit kan niet in js:
JavaScript:
1
2
3
var string = 'regeltje
regeltje
regeltje';

newlines kan je trouwens ook escapen:
JavaScript:
1
2
3
var string = 'regeltje\
regeltje\
regeltje';
;)

Intentionally left blank


Verwijderd

</script> in een javascript string leidt ook tot fouten, hiermee sluit je namelijk je script blok af :D

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:12

crisp

Devver

Pixelated

Verwijderd schreef op 23 augustus 2004 @ 17:19:
in een javascript string leidt ook tot fouten, hiermee sluit je namelijk je script blok af :D
de / escapen is vaak al voldoende om dit te omzeilen:
JavaScript:
1
var string = '<\/script>';

:)

Intentionally left blank


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
hoe moet ik het dan oplossen? Alles staat toch mooi op 1 regel en ik heb toch geen escape nodig dan

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
ik kom er dus niet uit. Steeds die tekenreeks contstante....

Dit is de geprogrammeerde code:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    with(MyTabs) {
        AddTab('Metadata toevoegen','<table><html:form action="DocAndMDataSaveAction.do" focus="registrationDate">\
        <tr><td background="images/w_tableBGImage.jpg" colspan="2"><FONT face="Verdana" size="2"><STRONG>Metadata toevoegen</STRONG></FONT></td></tr>\
        <tr><td>Registratiedatum</td><td><bean:define id="registrationDate" scope="session" name="dib" property="registrationDate" />\
        <html:text property="registrationDate" value="<%=registrationDate%>" readonly="true" /></td></tr>\
        <tr><td>Briefdatum</td><td><html:text property="sentDate" value="" /></td></tr><tr><td>Inhoud</td><td><html:text property="content" value="" /></td></tr>\
        <tr><td>Content type</td><td><bean:define id="contentType" scope="session" name="dib" property="contentType" />\
        <html:text property="contentType" value="<%=contentType%>" readonly="true" /></td></tr><tr><td>Bestandsgrootte</td>\
        <td><bean:define id="fileSize" scope="session" name="dib" property="fileSize" /><html:text property="fileSize" value="<%=fileSize%>" readonly="true" /></td></tr>\
        <tr><td>Referentiekenmerk</td><td><html:text property="reference" value="" /></td></tr><tr><td>Document naam</td><td>\
        <bean:define id="fileName" scope="session" name="dib" property="fileName" /><html:text property="fileName" value="<%=fileName%>" readonly="true" /></td></tr>\
        <tr><td><html:submit value="Invoeren document" /></td><td><html:button property="clear" value="Leeg velden" /></td></tr></html:form></table>');
        
        AddTab('Preview Document','Preview: <br /><tr><td><html:link action="GoToPreviewAction.do" target="_blank">Preview Document</html:link></td></tr></table>');
        
    Build();
    }


Bij de backslash van de afsluiting van de HTML:FORM tag, krijg ik: tekenreeksconstante niet afgesloten (hieboven is dat op regel 11 helemaal achteraan ergens).
Ik krijg het steeds bij die html:form. (ook weer bij het struts item).

EDIT: als ik van </html:form> dit maak: <\/html:form> krijg ik aan het einde van deze jsp pagina een unexpected end of file

[ Voor 255% gewijzigd door Deathchant op 24-08-2004 10:09 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • Janoz
  • Registratie: Oktober 2000
  • Nu online

Janoz

Moderator Devschuur®

!litemod

Waarom wil je eigenlijk perse gegenereerde html (incl scripts) in een java var proppen? Volgens mij kun je het formulier nog beter in een apparte div renderen en deze hidden/visible maken voor je tabs (of desnoods met innerHTML uitlezen)

Over edit:
Dat lijkt me inderdaad heel erg logisch. JSP snapt natuurlijk 'geen drol' van die backslash daar ;)..

Volgens mij is het handig om even goed voor jezelf op een rijtje te hebben wat nu serverside gebeurt, en wat clientside. Eerst wordt alle struts/jsp verwerkt naar html. Dat wordt naar de client verstuurt. Dan pas wordt het javascript verwerkt. Het escapen van de strutstags heeft dus geen enkele zin. Daarnaast gaat het gewoon fout omdat de struts tag zelf javascript (incl open en sluit tag) genereerd waardoor jou javascript te vroeg wordt afgesloten. Check de source maar eens. Zodra je brouwser een </script> tegenkomt stop deze met het verwerken van javascript. Staat dit midden in een string dan heb je dus een niet afgesloten tekenconstante.

[ Voor 62% gewijzigd door Janoz op 24-08-2004 10:14 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

waar krijg je die error nou? serverside of clientside?

if clientside, post dan eindelijk eens je output

  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
ja ik zie het al:

dit is de gerenderde output:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
with(MyTabs) {
        AddTab('Metadata toevoegen','<table><form name="docAndMDataSaveActionForm" method="post" action="/verkorte_registratie-ViewController-context-root/DocAndMDataSaveAction.do"><input type="hidden" name="org.apache.struts.taglib.html.TOKEN" value="35fdd60e8b431a7f29428d7d7d557eef">\
        <tr><td background="images/w_tableBGImage.jpg" colspan="2"><FONT face="Verdana" size="2"><STRONG>Metadata toevoegen</STRONG></FONT></td></tr>\
        <tr><td>Registratiedatum</td><td>\
        <input type="text" name="registrationDate" value="24-08-2004" readonly="readonly"></td></tr>\
        <tr><td>Briefdatum</td><td><input type="text" name="sentDate" value=""></td></tr><tr><td>Inhoud</td><td><input type="text" name="content" value=""></td></tr>\
        <tr><td>Content type</td><td>\
        <input type="text" name="contentType" value="image/pjpeg" readonly="readonly"></td></tr><tr><td>Bestandsgrootte</td>\
        <td><input type="text" name="fileSize" value="60366" readonly="readonly"></td></tr>\
        <tr><td>Referentiekenmerk</td><td><input type="text" name="reference" value=""></td></tr><tr><td>Document naam</td><td>\
        <input type="text" name="fileName" value="activity_diagram_webdoc.jpg" readonly="readonly"></td></tr>\
        <tr><td><input type="submit" value="Invoeren document"></td><td><input type="button" name="clear" value="Leeg velden"></td></tr></form>
<script type="text/javascript" language="JavaScript">
  <!--
  var focusControl = document.forms["docAndMDataSaveActionForm"].elements["registrationDate"];

  if (focusControl.type != "hidden") {
     focusControl.focus();
  }
  // -->
</script>
</table>');


Hij pleurt dat javascriptje voor die struts-focus nog net voor het afsluiten van de zooi. Maar hij geeft me de fout op de </td> tag bij de backslash op regel 11 helemaal achteraan

[ Voor 66% gewijzigd door Deathchant op 24-08-2004 10:17 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


Verwijderd

wat doet die backslash in die eerste regel daar dan? wat escape je? er staat geen newline nl (alleen wat spaties voor zover ik zie)

en verder geeft, zoals gezegd, die </script> in je string ook problemen
daarbovenop, geeft dat commentblok in je "embedded" js ook een probleem denk ik, haal die ook eens weg.

  • Janoz
  • Registratie: Oktober 2000
  • Nu online

Janoz

Moderator Devschuur®

!litemod

Dat kan niet zomaar. Dit wordt serverside zo gegenereerd.

* Janoz raad aan om die tabs anders op te lossen. Gebruik bv gewoon hgidden divs ipv het met javascript te genereren. Op deze manier krijg je alleen maar problemen. Serverside gegenereerde html en javascript dat door javascript vervolgens weer moet worden gegenereerd tot html en javascript...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
Verwijderd schreef op 24 augustus 2004 @ 10:20:
wat doet die backslash in die eerste regel daar dan? wat escape je? er staat geen newline nl (alleen wat spaties voor zover ik zie)

en verder geeft, zoals gezegd, die </script> in je string ook problemen
daarbovenop, geeft dat commentblok in je "embedded" js ook een probleem denk ik, haal die ook eens weg.
Die newline is erwel, alleen plakt ie het op dit forum even verkeerd.....

welke </script> bedoel je?

En die comment blok kan ik niks aan doen. DIt is gerenderde output. Dit scriptje wordt automatisch gerenderd omdat ik in het struts-form een attribuut FOCUS heb gebruikt

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
Janoz schreef op 24 augustus 2004 @ 10:24:
[...]


Dat kan niet zomaar. Dit wordt serverside zo gegenereerd.

* Janoz raad aan om die tabs anders op te lossen. Gebruik bv gewoon hgidden divs ipv het met javascript te genereren. Op deze manier krijg je alleen maar problemen. Serverside gegenereerde html en javascript dat door javascript vervolgens weer moet worden gegenereerd tot html en javascript...
Ja het probleem is dat ik dat vandaag geregeld moet hebben snappie? Dus ik ga nu niet weer helemaal omgooien. Bovendien zou ik zo 1 2 3 ook niet weten hoe ik die tabbladen anders moest doen.

Het lijkt allemaal zo simpel: gewoon een scriptje voor de tabbladen en dan je inhoud erin knikkeren, maar ik zie het niet zo simpel.

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar


  • Deathchant
  • Registratie: September 2003
  • Laatst online: 22-05 16:51

Deathchant

Don't intend. Do!

Topicstarter
auwhoer dit is gewoon VET. Ik heb die focus regel ertussenuit gehaald en nu doet ie het gewoon 8)7 _/-\o_

Hij rendert een javascript voor die struts-focus attribuut. Dit javascriptje pleurde hij dus midden tussen alle troep in. Dus ik heb die focus regel maar eruitgegooid en nu doet ie het wel

[ Voor 48% gewijzigd door Deathchant op 24-08-2004 10:50 ]

Canon: EOS R6 | EF 16-35/4L IS USM | EF 70-200/2.8L IS II USM
Zeiss: 35/2 Distagon | 50/2 Makro-Planar | 85/1.4 Planar | 100/2 Makro-Planar | 135/2 Apo Sonnar

Pagina: 1