我有一个可以看到图像或播放音频(CAPTCHA)的要求。我在图像和音频周围添加了 div 标签,并通过单击超链接,它们确实会更改 div 的显示,但更改(div)会丢失页面重新显示。
使用的技术:Java、JSP、javascript
有一个
jsp 中需要
a) 显示图像(默认)或b) 在请求时播放音频
图像和音频的“src”都是一个 servlet。
<tr> <td> </td> <td> <div id="audioPlayerContainer" style="display:none"> </div> </td> </tr> <tr> <td> </td> <td><div id="imageContainer"> <img src='MyServlet?mode=image&ts=<%=Math.random()%>' width="100" height="100"/> </div> </td> </tr>
jsp 中的部分,其中存在用于在请求图像或音频之间切换的链接
<a href="#" onclick="switchMode('audio');">Play audio</a> // OR <a href="#" onclick="switchMode('image');> Show image</a>
javascript点击链接
function switchMode(modeType){ if (modeType=="audio"){ var uri = '/MyServlet?mode=audio&ts='+new Date().getTime(); document.getElementById('audioPlayerContainer').style.display ="block"; document.getElementById('imageContainer').style.display ="none"; //logic to determine the browser type and browser verion- embed tag or audio document.getElementById("audioPlayerContainer").innerHTML= "<embed src='"+uri+"' autostart='true' loop='false' height='100' width='100'/>"; }else if (modeType=="image"){ document.getElementById("audioPlayerContainer").style.display = "none"; document.getElementById('imageContainer').style.display ="block"; } //page to reload with updated divs //window.location.href=window.location.href; //window.location.reload(0); //Both reloads page, state of div tags comes bck to default //document.forms[0].submit();//this doesnt even seem to work }
`