Джава скрипт не работает в ie
Привет.У меня не работает скрипт в ie? в мозиле,опере без проблем всё отображает.Суть такова:
есть два селекта при выборе одного и второго должна подгружаться страница,но почему то она не отображается в ie. Это то что прописано у меня в html: <select name="TOWNFROMINC" class="TOWNFROMINC" id="SKV_SOURCE_TOUR" autocomplete="off" >{foreach from=$TOWNFROMINC item="item"}<option value="{$item.Inc}" {if $item.selected}selected{/if}>{$item.LName}</option>{/foreach}</select> <select name="STATEINC" class="STATEINC" id="SKV_SOURCE_STATE" autocomplete="off" >{foreach from=$STATEINC item="item"}<option value="{$item.Inc}" {if $item.selected}selected{/if}>{$item.LName}</option>{/foreach}</select> <div id="SKV_NOTES"></div> <button class="load" onchange="skvLoadNotes();" disabled="disabled">##TOUR_SEARCH_REFRESH##</button> а это то что написано в js: window.onload = function () {skvLoadNotes();} window.onchange = function () {skvLoadNotes();} function skvLoadNotes() { var noteLink = 'data/notes/'; // Type a source to a folder where you have just located your notes. var noteContent = document.getElementById('SKV_NOTES'); var sourceState = document.getElementById('SKV_SOURCE_STATE').option s[document.getElementById('SKV_SOURCE_STATE').select edIndex].value; var sourceTour = document.getElementById('SKV_SOURCE_TOUR').options[document.getElementById('SKV_SOURCE_TOUR').selecte dIndex].value; noteContent.innerHTML = ''; noteLink = noteLink + 'c' + sourceState + 't' + sourceTour + '.html'; var httpRequest = skvCreateRequestObject(); httpRequest.overrideMimeType('text/html; charset=windows-1251'); if (httpRequest) { httpRequest.open('get', noteLink, true); httpRequest.onreadystatechange = function () { if(httpRequest.readyState == 4) { if (httpRequest.status == 200) { noteContent.innerHTML = '<p> </p>' + httpRequest.responseText + '<p> </p>'; } else { noteContent.innerHTML = ''; } } } httpRequest.send(); } } function skvCreateRequestObject() { try {return new XMLHttpRequest()} catch(e) { try {return new ActiveXObject('Msxml2.XMLHTTP')} catch(e) { try {return new ActiveXObject('Microsoft.XMLHTTP')} catch(e) {return null;} } } } Помогите пожалуйста разобраться в чём бок,почему експлоер его не видит??????? |
замените ваш skvCreateRequestObject на пример ниже
function skvCreateRequestObject(){ try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (ee) {} } if (typeof XMLHttpRequest!='undefined') { return new XMLHttpRequest(); } } |
catch не желательно и даже не нужно оставлять пустым.
не рекомендуется. |
Цитата:
|
Ваша функция у меня в IE отказалась работать, почему и предложил другую.
Вероятно проблема в чём то ещё кроме функции. Консольку бы :) Или другими словами ссылку на глючную страницу :) |
к слову.
по моему с overrideMimeType в IE нелады какие-то попробуйте вот такую строку, вместо overrideMimeType. if(httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/html; charset=windows-1251'); |
Цитата:
|
теперь он то блок отобразил, но не отображает то что внутри него должно быть...не видит,какие-то иероглифы выдаёт...почему?
|
overrideMimeType неработает в ie, вы его пробывали вызывать и у вас происходила ошибка
мы сделали так что если overrideMimeType нет, то он и невызывается либо на сервер измените заголовок (рекомендую) header('Content-Type: text/html; charset=windows-1251'); либо если html ку запрашиваете, то попробуйте в ней прописать (точно незнаю, но не ваш помоему случай) <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> З.Ы. я почти уверен что вы в кодировке utf получаете, а сама страница в windows-1251, как дополнительный вариант всё вёрстку в utf перевести можно. |
Цитата:
|
Часовой пояс GMT +3, время: 12:58. |