2016-12-25 3 views
2

Это прямой HTML/javascript. Эта страница отлично работает, когда выполняется сама по себе, но через вызов AJAX она не работает в IE11. После нажатия кнопки «показать» на главной странице открывается список с параметрами, считанными из файла XML; он принимает двойной щелчок, чтобы выбрать элемент, и отображает выбранный номер в поле предупреждения. (он также записывает это значение в файл свойств java). В Chrome и FF он работает так, как ожидалось, но не в IE11. В IE он не хочет выбирать какой-либо элемент. Возвратная страница AJAX открывает div с абсолютным позиционированием и возможностью перетаскивания. После того, как я перетащил окно со списком в другое место, он неожиданно работает и в IE (но только после перетаскивания всего нескольких пикселей). Я могу только предположить, что это ошибка в IE11, но есть ли работа? Почему перетаскивание ящика заставляет его работать?HTML-код не работает после вызова AJAX

Вот значимый код:

в 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); 
} 
+0

OnClick = 'showevent (<%=EVENTID%>, 0)'>, вероятно, должен быть OnClick = 'showevent ("<%=EVENTID%>", 0)'> если это строка, а не переменная – Bindrid

+0

события выбран = <%=eventnr%> также отсутствует quoats выбран – Bindrid

+0

Event = <%=eventnr%>? – Bindrid

ответ

0

Хорошо, я нашел эту проблему, это было сопротивление рутина угон функциональность. Когда я отключил перетаскивание, это сработало. Теперь я изменил функцию перетаскивания, чтобы проверить, находится ли курсор над вводом или выбрать тег и запретить перетаскивание в этой точке. Спасибо всем, кто заглянул в это.