|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.11.2014, 22:54 | #1 |
Новичок
Джуниор
Регистрация: 12.11.2014
Сообщений: 5
|
Самодур Firefox
Здравствуйте!
Обнаружил сегодня, что Firefox делает из строки объект с дурацким свойством и ни у кого не спрашивает разрешения на такое преобразование. Подробно: Отправляем запрос из javascript на сервер. С сервера приходит ответ. Тип string. Примерно такого содержания "<div>...</div>". В общем, кусок html-разметки. Javascript берёт этот ответ и как есть вставляет в один из элементов страницы. Всё просто. И всё работает. Но не в Firefox... Вот что делает Firefox c ответом (строкой): Он "стряпает" из него object со свойством #text. И свойство получает значение (#text = ответ). Да всё бы ничего.. Но Firefox успевает этот ответ ещё и исковеркать. Работает во всех браузерах, кроме Firefox. Может кто сталкивался.. Подскажите, есть ли решение этой проблемы? |
12.11.2014, 22:56 | #2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 16,220
|
Ничего не понял, но строки тоже объекты.
E-Mail: arigato.freelance@gmail.com
|
12.11.2014, 23:00 | #3 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
Может код покажите?
|
12.11.2014, 23:00 | #4 |
Новичок
Джуниор
Регистрация: 12.11.2014
Сообщений: 5
|
В Firefox-е если посмотреть на отладке, то видно, что возвращенный объект (строка) имеет тип не string, как в других браузерах, а object.
Код:
Сервер отправляет ответ типа string Вот сайт в начальной стадии разработки. 1. Нажмите "Профиль" в Crome 2. Нажмите "Профиль" в Firefox Последний раз редактировалось Stilet; 13.11.2014 в 07:31. |
13.11.2014, 08:18 | #5 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
а вы resp как передаете?
если тестово вызвать MenuItem_Selected("hello"); что тоже не работает? при нажатии на профиль у вас ошибка Код:
|
13.11.2014, 22:17 | #6 |
Новичок
Джуниор
Регистрация: 12.11.2014
Сообщений: 5
|
В общем, мудрит всё-таки firefox.
Проверил. Отправил с сервера ответ "<div>Несложный html-контент</div>". Ff принял этот ответ как строку и отобразил нормально. Но в рабочем режиме в ответе будет ещё и javascript-функции. Видимо, Firefox не приемлет такой дерзости. |
13.11.2014, 22:42 | #7 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
А вы и со сложным контентом аки js уже попробовапли? Или напред знаете?
|
13.11.2014, 22:56 | #8 |
Новичок
Джуниор
Регистрация: 12.11.2014
Сообщений: 5
|
Вот такой resp:
Код HTML:
<div class="login"> <script src="../Scripts/jquery-1.11.1.min.js" /> <script src="../Scripts/soapclient.js" /> <script src="../Scripts/crypto.js" /> <script type="text/javascript">function btnreg_Click() { var lgn = $("#txtlogin").val(); if (!vldlogin(lgn)) return; var pwd1 = $("#txtpwd1").val(); if (!vldpwd1(pwd1)) return; var pwd2 = $("#txtpwd2").val(); if (!vldpwd2(pwd1, pwd2)) return; var eml = $("#txtemail").val(); if (!vldemail(eml)) return; var md5pwd = CryptoJS.MD5(pwd1).toLocaleString(); var par = new SOAPClientParameters(); par.add("login", lgn); par.add("password", md5pwd); par.add("email", $("#txtemail").val()); var resp = SOAPClient.invoke("/SWService.asmx", "RegUserStep1", par, false); $(".right").html(resp); } function vldlogin(login) { var errlogin = $("#errlogin"); if (login == "") { errlogin.text("Поле не заполнено"); errlogin.css("display", "block"); return false; } var regex = /^[a-zA-Z][a-zA-Z0-9-_\.]{5,20}$/; if (!regex.test(login)) { errlogin.text("Нарушено правило заполнения. Имя пользователя должно состоять из латинских букв и цифр. Количество символов не менее 6 и не более 20"); errlogin.css("display", "block"); return false; } var par = new SOAPClientParameters(); par.add("login", login); var resp = SOAPClient.invoke("/SWService.asmx", "CheckLogin", par, false); if (resp) { errlogin.text("Пользователь с таким именем уже зарегистрирован"); errlogin.css("display", "block"); return false; } errlogin.css("display", "none"); return true; } function vldpwd1(pwd) { var errpwd1 = $("#errpwd1"); if (pwd == "") { errpwd1.text("Поле не заполнено"); errpwd1.css("display", "block"); return false; } var regex = /(?=^.{8,30}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/; if (!regex.test(pwd)) { errpwd1.text("Пароль должен содержать строчные и прописные латинские буквы, цифры, спецсимволы. Минимум 8 символов. Максимум 30"); errpwd1.css("display", "block"); return false; } errpwd1.css("display", "none"); return true; } function vldpwd2(pwd1, pwd2) { var errpwd2 = $("#errpwd2"); if (pwd2 == "") { errpwd2.text("Пароль не подтверждён"); errpwd2.css("display", "block"); return false; } if (pwd2 != pwd1) { errpwd2.text("Пароль подтверждён неверно"); errpwd2.css("display", "block"); return false; } errpwd2.css("display", "none"); return true; } function vldemail(email) { var erremail = $("#erremail"); if (email == "") { erremail.text("Поле не заполнено"); erremail.css("display", "block"); return false; } var regex = /^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$/; if (!regex.test(email)) { erremail.text("Email введен неверно"); erremail.css("display", "block"); return false; } erremail.css("display", "none"); return true; }</script> - <div id="regForm" style="float:left; width:439px; border-right:1px solid rgb(200,200,220)"> <div class="title">Регистрация</div> - <div class="field"> <div class="fieldname">Имя пользователя</div> - <div class="fieldvalue"> <input type="text" id="txtlogin" /> </div> <div id="errlogin" class="error" style="display:none" /> </div> - <div class="field"> <div class="fieldname">Пароль</div> - <div class="fieldvalue"> <input type="password" id="txtpwd1" /> </div> <div id="errpwd1" class="error" style="display:none" /> </div> - <div class="field"> <div class="fieldname">Подтвердить пароль</div> - <div class="fieldvalue"> <input type="password" id="txtpwd2" /> </div> <div id="errpwd2" class="error" style="display:none" /> </div> - <div class="field"> <div class="fieldname">Email</div> - <div class="fieldvalue"> <input type="text" id="txtemail" /> </div> <div id="erremail" class="error" style="display:none" /> </div> <div class="button" onclick="btnreg_Click()">Зарегистрироваться</div> </div> - <div id="signInForm" style="float:left; width:439px"> <div class="title">Вход</div> - <div class="field"> <div class="fieldname">Имя пользователя</div> - <div class="fieldvalue"> <input type="text" /> </div> </div> - <div class="field"> <div class="fieldname">Пароль</div> - <div class="fieldvalue"> <input type="password" /> </div> </div> <div class="button" onclick="signIn_Click()">Войти</div> </div> </div> Последний раз редактировалось Stilet; 14.11.2014 в 07:46. |
14.11.2014, 10:13 | #9 | |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
Цитата:
т.е. я не ошибся, так задумано?
Alar, верни репу!
|
|
14.11.2014, 11:59 | #10 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,150
|
может все-таки дело не в ФФ? можете принудительно преобразовать входной параметр как строку .. .но думаю вам не поможет..... а ява скрипты даже если и будут загружены как текст - они не выполнятся.... там по другому действоват ьнадо
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с firefox | susanna22 | PHP | 3 | 09.03.2012 00:00 |
Mozilla Firefox 4 | Bustle | Софт | 11 | 02.04.2011 10:23 |
Firefox tab | Jakethefish | Win Api | 0 | 05.03.2011 11:12 |
Firefox таблица | Levsha100 | HTML и CSS | 7 | 24.12.2008 21:33 |
Помогите с Firefox-ом.... | Altera | Софт | 1 | 30.11.2008 10:28 |