这是直接的 HTML/javascript。该页面在单独执行时工作正常,但通过 AJAX 调用它在 IE11 上不起作用。 单击主页上的“显示”按钮后,它会打开一个包含选项的列表,从 XML 文件中读取;它接受双击以选择一个项目并在警告框中显示选定的数字。 (它还将此值写入 java 属性文件)。在 Chrome 和 FF 上它按预期工作,但在 IE11 中不行。 在 IE 上它拒绝选择任何项目。 AJAX 的返回页打开一个具有绝对定位和拖动可能性的 div。在我将带有列表的框拖到另一个地方后,它突然在 IE 中也能正常工作(但只有在拖动超过几个像素之后)。 我只能假设这是 IE11 中的一种错误,但有解决办法吗?为什么拖动框会起作用?
这是重要的代码:
在 main.jsp 中:
<span id='showcurevent' onclick='showevent(<%=EVENTID%>, 0)'>Show </span>
<div id='Qevents' class='drag' ></div>
<script>
function showevent(nr, curevent) {
var eventdiv=document.getElementById('Qevents');
var url="AJAX1.jsp?xml=<%=XMLfile%>&index="+nr+"&curevent="+curevent;
sendAjaxRequest(url, callback1);
}
function callback1(pushtext) {
var eventdiv=document.getElementById('Qevents');
eventdiv.innerHTML=pushtext;
eventdiv.style.visibility='visible';
}
在 AJAX1.jsp 文件中:
<table><tr>
<td><select id='sel' size=10 ondblclick='SetSelectedEvent(this.value)'>
<option value='1'>1 text1</option>
<option value='2'>2 text2</option>
etc, several more ...
</select></td></tr>
</table>
在 main.jsp 文件中:
function SetSelectedEvent(nr) {
var url="AJAX2.jsp?props=<%=propsFile%>&event="+nr;
sendAjaxRequest(url, callback2);
}
function callback2(pushtext) {
var number = pushtext.substring(pushtext.indexOf("Value selected=")+15,pushtext.indexOf("</body"));
alert('value Selected: '+number);
}
在 AJAX2.jsp 中:
<%
String eventnr=request.getParameter("event");
%> Event selected=<%=eventnr%>
</body>
AJAX1和AJAX2其实是同一个文件,只是代码的不同部分,通过request.parameter()的值来选择。
AJAX 代码本身位于单独的 .js 文件中:
function sendAjaxRequest(url, callback) {
var xmlHttp=new XMLHttpRequest();
if (xmlHttp==null) { // browser does not support AJAX
return;
}
xmlHttp.onreadystatechange=function() {
if (xmlHttp.readyState==4 && xmlHttp.status == 200) {
callback( xmlHttp.responseText);
}
}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
最佳答案
好的,我找到了问题所在,是拖动例程劫持了功能。 当我禁用拖动时,它起作用了。 我现在更改了拖动功能以检查光标是否在输入或选择标签上,并禁止在该点拖动。 感谢所有对此进行调查的人。
关于javascript - AJAX 调用后 HTML 选择不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41318088/