вызов функции javascript для извлечения данных и отображения на экране при загрузке страницы

#javascript #java #html #jsp

Вопрос:

Я пытаюсь вызвать функцию javascript для извлечения данных из базы данных. когда страница загружается, другой продукт должен извлекать данные по событию щелчка. Но только onclick I извлекает данные, и когда страница загружается в первый раз, это пустая страница. Пожалуйста, веди меня. пожалуйста, найдите ниже мой код. страница java и jsp

 lt;% for(int i=0;ilt;vProductLine.size();i  ){  if(i == 0) { %gt;  lt;%-- lt;td id="ongletlt;%= i %gt;" class="lt;% if(nOnglet.equals("" i)) out.print("ongletActif"); else out.print("ongletInactif"); %gt;" onload="displayOnglet('lt;%= i %gt;')"gt; --%gt; lt;td id="ongletlt;%= i %gt;" class="lt;% if(nOnglet.equals("" i)) out.print("ongletActif"); else out.print("ongletInactif"); %gt;" onload="displayOnglet('lt;%= i %gt;')"gt;  lt;table border="0" cellpadding="0" cellspacing="0"gt;  lt;trgt;lt;td nowrap align="center"gt;lt;bgt;lt;j2ee:text id="xmlFile" tag="lt;%= vProductLine.elementAt(i).toString() %gt;"/gt;lt;/bgt;lt;/tdgt;lt;/trgt;  lt;trgt;lt;td align="center"gt;lt;span id="obj_lt;%= vProductLine.elementAt(i) %gt;"gt;lt;/spangt;lt;/tdgt;lt;/trgt;  lt;/tablegt;  lt;/tdgt; lt;% }else{ %gt;  lt;td id="ongletlt;%= i %gt;" class="lt;% if(nOnglet.equals("" i)) out.print("ongletActif"); else out.print("ongletInactif"); %gt;" onclick="displayOnglet('lt;%= i %gt;')"gt;  lt;table border="0" cellpadding="0" cellspacing="0"gt;  lt;trgt;lt;td nowrap align="center"gt;lt;bgt;lt;j2ee:text id="xmlFile" tag="lt;%= vProductLine.elementAt(i).toString() %gt;"/gt;lt;/bgt;lt;/tdgt;lt;/trgt;  lt;trgt;lt;td align="center"gt;lt;span id="obj_lt;%= vProductLine.elementAt(i) %gt;"gt;lt;/spangt;lt;/tdgt;lt;/trgt;  lt;/tablegt;  lt;/tdgt; lt;% }} %gt;  

Комментарии:

1. Ты имеешь onload="displayOnglet('lt;%= i %gt;')" в виду, не работает?

2. да, после добавления функции onload, по-прежнему для первого списка продуктов данные не загружаются. он показывает пустой экран. но когда мы переходим к списку других продуктов на той же странице и возвращаемся(щелчком мыши) к первому продукту. он загружает данные.

3. На самом деле onload событие никогда не срабатывает по td тегу, теги, которые вы можете определить для них при загрузке, следующие : lt;bodygt;, lt;framegt;, lt;framesetgt;, lt;iframegt;, lt;imggt;, lt;input type="image"gt;, lt;linkgt;, lt;scriptgt; and lt;stylegt; .

4. хорошо, я должен вызвать функцию onload для первого элемента индекса в этом случае, что я должен использовать. потому что тег тела уже используется для другой функции загрузки на моей странице.

5. Что вы подразумеваете под тем, что тег body уже используется для другой функции onload на моей странице? вы можете определить несколько действий при загрузке тела, например: function f1(){ // do something}; function f2(){ // do something}; document.body.onload= function(){ f1(); f2(); } этот подход не решит вашу проблему?

Ответ №1:

Если решение в комментарии не помогает решить вашу проблему, другое решение состоит в том, чтобы поместить тег сценария и вызвать вашу функцию внутри сценария, как это:

 lt;% for(int i=0;ilt;vProductLine.size();i  ){ if(i == 0) { %gt;  lt;td id="ongletlt;%= i %gt;" ...gt;  lt;table border="0" cellpadding="0" cellspacing="0"gt;  lt;trgt;lt;td nowrap align="center"gt;...lt;/tdgt;lt;/trgt;  lt;trgt;lt;td align="center"gt;...lt;/tdgt;lt;/trgt;  lt;/tablegt;  lt;/tdgt; lt;scriptgt;  displayOnglet('lt;%= i %gt;'); //or wathever you want to do on td's onlaod lt;/scriptgt; lt;% }... %gt;