Джава скрипт не работает в 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 перевести можно. |
Цитата:
|
Цитата:
|
в хроме всплывает
в мозилле у менчя вроде тоже нет не каких иероглифов. |
Цитата:
|
кстатии раз теперь всё в UTF-8
то злополучную строчку наверное уже можно заремарарить или удалить. //if(httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/html; charset=windows-1251'); |
Цитата:
|
Блин я за вами не успеваю :)
|
если всё в utf 8 то обратите внимание что overrideMimeType, вам будет вредить, читайте #14 топик.
Если всётаки 1251 то попробуйте колдавать с header на сервере если не поможет, то я могу перейти на страницу и поглядеть что не так. |
вот это
httpRequest.overrideMimeType('text/html; charset=windows-1251'); вообще то нужно вызывать после метода .open() |
Цитата:
|
ок, смотрю
|
В хроме кракозябры, после очистки кэша щас всё норм.
Мой IE Наглухо отказывается перейти на ваш сайт, и переадресовывает меня на поисковик. Так что поглядеть в IE не могу, сорри. |
Цитата:
|
помогло спасибо.
по консоли причина пока не очевидна единственное что бросилось в глаза дак это то что многие скрипты подключены как <script type="text/javascript" charset="windows-1251" src="/online/public/js/page_callback.js?rev=-2040425124"></script> не знаю может ли это быть источником проблемы, некогда не слышал о таком. |
у меня всплывающее окно сделано на css без скрипта...везде оно отображает а в ie нет....почему? с позиционированием всё в норме, не пойму почему тогда
|
может какой- то хак есть для него..а???
|
это то что у меня в css
.b-popup-paranja { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1000; background: rgba(0,0,0,0.6); cursor: default; visibility: hidden; opacity: 0; -webkit-transition: opacity .4s, visibility .4s; -moz-transition: opacity .4s, visibility .4s; -o-transition: opacity .4s, visibility .4s; transition: opacity .4s, visibility .4s; } .b-popup { top: -200px; right: 0; left: 0; z-index: 2000; position: relative; opacity: 0; visibility: hidden; height: 0; text-align: center; -webkit-transition: opacity .4s, visibility .4s, top .4s; -moz-transition: opacity .4s, visibility .4s, top .4s; -o-transition: opacity .4s, visibility .4s, top .4s; transition: opacity .4s, visibility .4s, top .4s; } .b-popup-in { position: relative; display: inline-block; max-width: 90%; z-index: 2000; top: -200px; padding: 10em 1.375em 0; margin: 10em 0; text-align: center; background: #FFF; -webkit-border-radius: 1em; -moz-border-radius: 1em; border-radius: 1em; -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.7); -moz-box-shadow: 0 0 5px rgba(0,0,0,0.7); -o-box-shadow: 0 0 5px rgba(0,0,0,0.7); box-shadow: 0 0 5px rgba(0,0,0,0.7); } .b-popup-paranja:target { visibility: inherit; opacity: 1; -webkit-transition: opacity .4s; -moz-transition: opacity .4s; -o-transition: opacity .4s; transition: opacity .4s; } .b-popup-paranja:target+.b-popup { visibility: inherit; opacity: 1; top: 10%; -webkit-transition: opacity .4s, top .4s; -moz-transition: opacity .4s, top .4s; -o-transition: opacity .4s, top .4s; transition: opacity .4s, top .4s; } .b-popup-closer { position: absolute; top: -0.75em; right: -0.75em; width: 1.5em; height: 1.5em; text-align: center; line-height: 1.4em; text-decoration: none; background: #333; background: rgba(0,0,0,0.7); -webkit-border-radius: 1em; -moz-border-radius: 1em; border-radius: 1em; -webkit-box-shadow: 0 0 4px rgba(0,0,0,0.7); -moz-box-shadow: 0 0 4px rgba(0,0,0,0.7); -o-box-shadow: 0 0 4px rgba(0,0,0,0.7); box-shadow: 0 0 4px rgba(0,0,0,0.7); } .b-popup-closer:before { content: "x"; font-size: 1.2em; color: rgba(255,255,255,0.9); text-shadow: 0 -1px rgba(0,0,0,0.9); } @media (max-device-width: 1024px) { /* Fixing iOS bug with visibility+opacity transitions */ .b-popup, .b-dropdown-popup, .b-popup-paranja { opacity: 1 !important; } .b-paranja, .b-popup-paranja { display: none; } } .b-popup-in #tab{ width: 80%; text-align: center; margin: 0.5em; font-family: tahoma, arial, "sans serif"; } .b-popup-in #tab td{ border:2px solid #fff; } .b-popup-in td{ background-color: #b4cef3; border:2px solid #fff; } |
а это то что у меня в html:
(<a href="#SomePopup2">расписание рейсов</a>), .... <a id="SomePopup2" class="b-popup-paranja" href="#x"></a> <div class="b-popup"> <div class="b-popup-in"> <br> <center><table id="tab" > <tr id="trp">.... </tr> </table> <a class="b-popup-closer" href="#x"></a> </div> </div> |
везде появляется а в ie нет...почему? сталкивались с таким?
|
Некропостинг, поскольку проблема аналогичная...
Код (прикладываю) прекрасно отрабатывает в мозилле, опере, хроме. В ИЕ 8 не хочет... При загрузке странички дебаггер пишет: expected identifier, string or number строка 8 символ 72 (закрывающая фигурная скобка, если не ошибаюсь - при вставке кода сюда "скушались" пробелы в начале строк...) При клике на кнопку выдает ошибки: object expected строка 27 символ 1 (открывающая < инпута) и строка 27 символ 24 (r2()). Хотелось бы знать, где что не так... И да, я не спец в джаваскрипте, ногами не бить в случае непонимания намеков... Собственно, весь код странички: <html> <head> <script language="javascript"> function r2() { var q = {50:{12:{1:{100:202,150:176,200:164,250:142,300:12 8,350:113,400:98}, 2:{100:150,150:131,200:120,250:107,300:98,350:91,4 00:84}, 3:{100:126,150:110,200:98,250:91,300:84,350:78,400 :72}, 4:{100:103,150:89,200:82,250:77,300:69,350:66,400: 63},}, 13:{1:{100:196.75,150:171.5,200:159.75,250:138.5,3 00:124.75,350:110.25,400:95.75}, 2:{100:146,150:127.75,200:116.75,250:104.25,300:95 .5,350:88.5,400:81.5}, 3:{100:122.75,150:107,200:95.5,250:88.5,300:82,350 :76,400:70}, 4:{100:100.5,150:86.75,200:79.75,250:75,300:67.25, 350:64.25,400:61.25},}, 14:{1:{100:191.5,150:167,200:155.5,250:135,300:121 .5,350:107.5,400:93.5}, 2:{100:142,150:124.5,200:113.5,250:101.5,300:93,35 0:86,400:79}, 3:{100:119.5,150:104,200:93,250:86,300:80,350:74,4 00:68}, 4:{100:98,150:84.5,200:77.5,250:73,300:65.5,350:62 .5,400:59.5},},}, 45:{27:{1:{100:96.6,150:85.2,200:78.6,250:68.8,300 :61.2,350:54,400:46.8}, 2:{100:72.4,150:63.6,200:58,250:51.4,300:46.8,350: 43.2,400:39.6}, 3:{100:60.6,150:52.4,200:46.8,250:43.2,300:40.6,35 0:38.4,400:36.2}, 4:{100:49.8,150:43.6,200:40,250:37,300:33.4,350:42 247,400:30.2},},}, }; alert (q[50][12][1][100]); } </script> </head> <body> <input type='button' value='calc' onclick='r2();'> </body> </html> |
Часовой пояс GMT +3, время: 01:40. |