我被困在代码中间并需要帮助。 我正在使用jsp创建一个Web应用程序。这是我的代码:
<%@include file="dbconnection.jsp"%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<H1></H1>
<script language="JavaScript">
function showdata(ctr) {
switch (ctr) {
case 1:
<%ResultSet rs = statement.executeQuery("select value from Authors;") ; %>
<%
int c=0;
while(rs.next()){
String result=rs.getString(1);
c++;
%>
document.write('<table><tr><td>');
document.write('<A HREF = "#" ONCLICK="Nextdata(<%=c%>)"><%=result%></A>');
document.write('</td></tr></table>');
<% } %>
document.write('<INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);">');
break;
case 2:
alert("xyz");
break;
}
}
function Nextdata(count)
{
switch (count) {
case 1:
alert("Hi");
break;
}
}
</script>
<TABLE>
<%ResultSet resultset = statement.executeQuery("select title from Books;") ;%>
<%
int counter=0;
while(resultset.next()){
String result=resultset.getString(1);
counter++;
%>
<TR>
<TD>
<a href="javascript:showdata(<%=counter%>)"><%=result%></a>
</TD>
</TR>
<% } %>
</TABLE>
</BODY>
</HTML>
当我点击某个特定链接时,我会点击另一个链接,showdata
函数会在showdata()
内写入Nextdata()
来调用Nextdata
函数。但是这个{{1}}函数没有被调用为什么会这样?我的错在哪里?请帮忙。
答案 0 :(得分:0)
你不能嵌套javascript函数,除非你确定嵌套函数&#39; NextData()&#39;不会在范围之外使用 &#39; ShowData()&#39;功能
尝试将&#39; NextData()&#39;超出&#39; ShowData()&#39;
的范围这可能对你有用.. !!
答案 1 :(得分:0)
当我运行jsp时,我的源代码为:
<HTML>
<HEAD>
<TITLE>
</TITLE>
</HEAD>
<BODY>
<H1></H1>
<script language="JavaScript">
function NextData(ctrr)
{
switch (ctrr) {
case 1:
alert("function 3");
break;
case 2:
alert("function 3");
break;
case 3:
alert("function 3");
break;
case 4:
alert("function 4");
break;
case 5:
alert("function 5");
break;
}
}
</script>
<script language="JavaScript">
function displayData(ctr) {
switch (ctr) {
case 1:
document.write('<table><tr><td>');
document.write('<A HREF ="javascript:NextData(1)">Spotlight</A>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<A HREF ="javascript:NextData(2)">Oryx highlights</A>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<A HREF ="javascript:NextData(3)">Little Taster</A>');
document.write('</td></tr></table>');
document.write('<INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);">');
break;
case 2:
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(1)">Spotlight</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(2)">Simply the Best</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(3)">Juke box</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(4)">100 Greatest Album/Single</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(5)">List All Artists</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(6)">List All Albums</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(7)">Arabic</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(8)">Hindi</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(9)">Pop</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(10)">Rock</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(11)">Jazz & Blues</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(12)">Country</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(13)">Classical</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(14)">Dance</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(15)">Easy Listening</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(16)">World Music</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(17)">Relaxation</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(18)">Malayalam</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(19)">Tamil</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(20)">Far East</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(21)">Oryx Radio</a>');
document.write('</td></tr></table>');
document.write('<table><tr><td>');
document.write('<a href="JavaScript:NextData(22)">Audio Book</a>');
document.write('</td></tr></table>');
document.write('<INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);">');
break;
case 3:
alert("function 3");
break;
case 4:
alert("function 4");
break;
case 5:
alert("function 5");
break;
case 6:
alert("function 6");
break;
case 7:
alert("function 7");
break;
case 8:
alert("function 8");
break;
case 9:
alert("function 9");
break;
case 10:
alert("function 10");
break;
}
}
</script>
<TABLE>
<TR>
<TD>
<a href="javascript:displayData(1)">Broadcast Video</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(2)">Interactive Audio</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(3)">Interactive Movies</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(4)">Trailers</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(5)">Interactive Trailers</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(6)">Interactive Shorts</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(7)">PA</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(8)">Young Travellers</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(9)">MISC</a>
</TD>
</TR>
<TR>
<TD>
<a href="javascript:displayData(10)">Games</a>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
点击链接后,我将其作为来源:
<table><tr><td><a href="javascript:NextData(1)">Spotlight</a></td></tr></table><table><tr><td><a href="javascript:NextData(2)">Simply the Best</a></td></tr></table><table><tr><td><a href="javascript:NextData(3)">Juke box</a></td></tr></table><table><tr><td><a href="javascript:NextData(4)">100 Greatest Album/Single</a></td></tr></table><table><tr><td><a href="javascript:NextData(5)">List All Artists</a></td></tr></table><table><tr><td><a href="javascript:NextData(6)">List All Albums</a></td></tr></table><table><tr><td><a href="javascript:NextData(7)">Arabic</a></td></tr></table><table><tr><td><a href="javascript:NextData(8)">Hindi</a></td></tr></table><table><tr><td><a href="javascript:NextData(9)">Pop</a></td></tr></table><table><tr><td><a href="javascript:NextData(10)">Rock</a></td></tr></table><table><tr><td><a href="javascript:NextData(11)">Jazz & Blues</a></td></tr></table><table><tr><td><a href="javascript:NextData(12)">Country</a></td></tr></table><table><tr><td><a href="javascript:NextData(13)">Classical</a></td></tr></table><table><tr><td><a href="javascript:NextData(14)">Dance</a></td></tr></table><table><tr><td><a href="javascript:NextData(15)">Easy Listening</a></td></tr></table><table><tr><td><a href="javascript:NextData(16)">World Music</a></td></tr></table><table><tr><td><a href="javascript:NextData(17)">Relaxation</a></td></tr></table><table><tr><td><a href="javascript:NextData(18)">Malayalam</a></td></tr></table><table><tr><td><a href="javascript:NextData(19)">Tamil</a></td></tr></table><table><tr><td><a href="javascript:NextData(20)">Far East</a></td></tr></table><table><tr><td><a href="javascript:NextData(21)">Oryx Radio</a></td></tr></table><table><tr><td><a href="javascript:NextData(22)">Audio Book</a></td></tr></table><INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);">
答案 2 :(得分:0)
您定义的函数名称是Nextdata() 并且您生成的HTML正在调用函数Next D ata()
检查这是错误吗?
在浏览器控制台中检查您是否收到“未捕获的ReferenceError:未定义NextData”
答案 3 :(得分:0)
我花时间调查问题并发现 - 在这种情况下感谢Internet Explorer - 原因。它也证实了我在答案二中的评论(来自op本人):
当您执行document.write()
时,IE和FF会生成一个新的空白页面。结果是javascript函数NextData()
不存在。是否确实两个浏览器都创建了新页面?是的,因为history.goBack(-1)
确实有效并再次显示第一个视图。
因此浏览器无法执行不存在的功能。
任何解决方案?:也许......
解决此问题的一种方法是创建两个div元素,其中包含第一个表,第二个元素包含 追加 目标表。隐藏第一个并显示第二个。 Javascript: AppendChild会帮助您理解我的意思。
P.S。:解决这个问题的方法不止一种,但永远不要使用document.write()
。如您所见,此方法在某些浏览器中显示意外行为。