|
08.11.2012, 19:00
|
Интересующийся
|
|
Регистрация: 08.11.2012
Сообщений: 16
|
|
Джава скрипт не работает в 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;}
}
}
}
Помогите пожалуйста разобраться в чём бок,почему експлоер его не видит???????
|
|
08.11.2012, 19:45
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
замените ваш 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();
}
}
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 08.11.2012 в 19:58.
|
|
09.11.2012, 10:38
|
Кандидат Javascript-наук
|
|
Регистрация: 03.10.2012
Сообщений: 147
|
|
catch не желательно и даже не нужно оставлять пустым.
не рекомендуется.
|
|
09.11.2012, 13:47
|
Интересующийся
|
|
Регистрация: 08.11.2012
Сообщений: 16
|
|
Сообщение от DjDiablo
|
замените ваш 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();
}
}
|
заменила я на это, но ничего так и не поменялось.... может где-то в другом месте надо поменять?
|
|
09.11.2012, 14:36
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
Ваша функция у меня в IE отказалась работать, почему и предложил другую.
Вероятно проблема в чём то ещё кроме функции.
Консольку бы
Или другими словами ссылку на глючную страницу
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
|
|
09.11.2012, 14:41
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
к слову.
по моему с overrideMimeType в IE нелады какие-то
попробуйте вот такую строку, вместо overrideMimeType.
if(httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/html; charset=windows-1251');
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
|
|
09.11.2012, 15:59
|
Интересующийся
|
|
Регистрация: 08.11.2012
Сообщений: 16
|
|
Сообщение от DjDiablo
|
к слову.
по моему с overrideMimeType в IE нелады какие-то
попробуйте вот такую строку, вместо overrideMimeType.
if(httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/html; charset=windows-1251');
|
Попробовала...супер!!! помогло....))) но теперь вылез другой глюк в этом окошке у меня всплывающий блок и вот как он выглядит
Последний раз редактировалось Yulia100207, 10.11.2012 в 11:42.
|
|
09.11.2012, 16:01
|
Интересующийся
|
|
Регистрация: 08.11.2012
Сообщений: 16
|
|
теперь он то блок отобразил, но не отображает то что внутри него должно быть...не видит,какие-то иероглифы выдаёт...почему?
|
|
09.11.2012, 16:11
|
Профессор
|
|
Регистрация: 04.02.2011
Сообщений: 1,815
|
|
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 перевести можно.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме
Последний раз редактировалось DjDiablo, 09.11.2012 в 16:22.
|
|
09.11.2012, 17:30
|
Интересующийся
|
|
Регистрация: 08.11.2012
Сообщений: 16
|
|
Сообщение от DjDiablo
|
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 перевести можно.
|
да,вы правы, я все страницы в html перевела в utf и стало всё читабельным...))) Спасибо!!!!))) Но теперь у меня всплывающие блоки блин не отображает, которые в этих хтмл-ках... наверно что-то со стилями этих блоков?
|
|
|
|