Добрый день.
Постоянно, на определенных сайтах (в частности, hh.ru) возникают ошибки сценариев. Клиент под управлением Windows Vista Home Premium.
«На этой странице произошла ошибка сценария»
Строка: 164
Символ: 5
Ошибка: Объект не поддерживает это свойство или метод
Код: 0
URL: http://www.hh.ru/
Продолжить выполнение сценариев на этой странице?»
Были выполнены все найденные рекомендации:
В Internet Explorer, в меню Сервис, в Свойствах обозревателя были поставлены флажки рядом с Отключить отладку сценариев (Internet Explorer) и Отключить отладку сценариев (другие).
Снят флажок с Показывать уведомления о каждой ошибке сценария.
В Панель Управления, Свойства папки, Задачи — Использовать Обычные папки Windows.
regsvr32 atl.dll
regsvr32 corpol.dll
regsvr32 dispex.dll
regsvr32 jscript.dll
regsvr32 scrrun.dll
regsvr32 scrobj.dll
regsvr32 vbscript.dll
regsvr32 wshext.dll
regsvr32 msxml3.dll
regsvr32 comuid.dll
regsvr32 comsvcs.dll
regsvr32 ole32.dll
regsvr32 oleaut32.dll
Все проделанные манипуляции не привели к устранению проблемы.
Где еще можно посмотреть?
Заранее благодарен.
С уважением,
Святослав.
I have an option in my application where users can deactivate their profiles. Only admin can activate them again.
I have a class ActivateProfile
with two methods
userExist(userName)
that checks if user with that userName exists and his/her profile is deactivated- and
activateAccountByUser(userName)
that activate the profile of the user again
I call a JavaScript function on the click event of an input type button. This code works fine on Chrome and Mozilla, but on Internet Explorer I get this error:
SCRIPT438: Object doesn’t support property or method userExist
function activateProf() {
var userName=document.getElementById("userName").value;
if (userName == "") {
alert("Полето е задолжително");
} else {
alert(userName + "1");
ActivateProfile.userExist(userName, { callback:function(exist) {
if (userName) {
ActivateProfile.activateAccountByUser(userName);
alert("User is activated");
} else {
alert("User does not exist");
}
}});
}
}
Here is the code for Activate profile class
public void activateAccountByUser(String userName) {
try {
Connection c = DBComm.getInstance().getConnection();
Statement s = c.createStatement();
ResultSet set = s.executeQuery("select * from accounts where userName = '" + userName + "' and isauthorized='2'");
if (set.next()) {
Statement st = c.createStatement();
st.executeUpdate("update accounts set isauthorized='1' where userName='" + userName + "' and isauthorized='2'");
}
s.close();
c.close();
} catch (Exception ex) {
java.util.logging.Logger.getLogger(ActivateProfile.class.getName()).log(Level.SEVERE, null, ex);
}
}
public boolean userExist(String userName) throws SQLException {
//true exist
//false does not exist
boolean existEmbg = false;
try {
Connection c = DBComm.getInstance().getConnection();
Statement s = c.createStatement();
ResultSet set = s.executeQuery("select * from accounts where userName = '" + userName + "' and isauthorized='2'");
if (set.next()) {
existEmbg = true;
} else {
existEmbg = false;
}
s.close();
c.close();
} catch (Exception ex) {
java.util.logging.Logger.getLogger(ActivateProfile.class.getName()).log(Level.SEVERE, null, ex);
}
return existEmbg;
}
При работе с многоуровневыми программными пакетами, в которых предусмотрено ведение отчетности или выполнение финансовых операций в виде отслеживания состояния счетов или онлайн-платежей, достаточно часто можно встретить появление программного сбоя с выдачей уведомления о том, что какой-то объект не поддерживает свойства или метод Sign. Что делать в такой ситуации, знают далеко не все. Тем не менее, если разобраться в сути проблемы, решения по ее устранению многим пользователям покажутся очень простыми.
Объект не поддерживает свойства или метод Sign: суть проблемы
Суть происходящего состоит в том, что для проведения конфиденциальных операций, связанных с финансовой (и не только) отчетностью, при работе в интернете для обеспечения безопасности используются специальные цифровые подписи (Sign Cab), которые удостоверяют подлинность и надежность проведения предполагаемых действий.
Сбой в виде ошибки «Объект не поддерживает свойства или метод Sign» свидетельствует о том, что такая подпись либо является недостоверной (что встречается весьма нечасто), либо запрошенный электронный документ или ресурс, на котором он расположен, блокируются системой безопасности, либо отказ в доступе связан с текущими настройками браузера, либо система не может выполнить специальные скрипты, необходимые для открытия документа вследствие отсутствия установленной поддержки.
Это основные причины появления сбоя. На них и будет заострено внимание. Вирусное воздействие по понятным причинам не рассматривается, поскольку и так ясно, что следить за системой пользователь должен самостоятельно. Это не обсуждается.
Отключаем систему защиты
Чтобы устранить сбой в виде ошибки «Объект не поддерживает свойства или метод Sign», первым делом следует кратковременно отключить штатный антивирус, установленный в системе. В любом программном продукте этого типа такая возможность предусмотрена.
Обычно достаточно просто использовать меню ПКМ (правой кнопки мыши) на иконке антивируса в системном трее, в котором достаточно выбрать отключение защиты на 10 минут. После этого можно посмотреть, откроется ли запрашиваемый документ.
Дополнительно доступ может блокировать собственный файрвол Windows. Его тоже следует деактивировать и проверить, появился ли доступ.
Если при выполнении таких действий ошибка «Объект не поддерживает свойства или метод Sign» исчезает, следует внести сайт в список исключений антивируса и выполнить такие же настройки в файрволе, но уже для браузерного приложения, используемого в системе по умолчанию, с указанием полного пути к исполняемому файлу программы.
Изменяем свойства обозревателя
Как показывает практика, в большинстве случаев такой сбой проявляется исключительно в «родном» браузере Windows-систем Internet Explorer. Если посмотреть на свойства обозревателя, в которых настраивается большинство параметров, нетрудно заметить, что по умолчанию установлен уровень защиты, соответствующий значению «Выше среднего». И использование именно этого параметра в большинстве случаев является совершенно необоснованным.
В этой ситуации можно произвести изменение настроек браузера, установив уровень безопасности специальным ползунком (фейдером) в положение «Ниже среднего».
При этом стоить обратить внимание на поддержку исполняемых сценариев и элементов ActiveX, для которых в разделе безопасности нужно включить разрешения.
Обратите внимание, что, если в системе имеются установленные без ведома пользователя апплеты вроде дополнительных сервисов Mail.Ru, «Одноклассников» или еще чего-то подобного, их следует удалить, но использовать для этого желательно не собственный раздел программ и компонентов Windows, а применять специальные утилиты с расширенными возможностями (iObit Uninstaller, Revo Uninstaller и др.)
Используем другой браузер
Если действия с Internet Explorer результата не дали, нет ничего проще, чем попытаться открыть необходимый документ в другой программе.
Браузеров сейчас очень много (Chrome, Firefox, Edge, Opera и т.д.) Какой именно будет применяться программный продукт, не столь важно. Если доступ будет получен хотя бы в одном из них, это уже скажет о том, что не все в порядке с IE, и проблема состоит не в цифровой подписи.
Чистим кэш и файлы Cookies
Если же открытие документа будет невозможным и в этом случае, для начала следует зайти в основные настройки и полностью удалить весь компьютерный мусор в виде кэша, файлов Cookies и истории посещений.
При этом в любой программе имеется специальное меню, отвечающее за устанавливаемый для очистки период. Для верности лучше выбрать параметр «За весь период» или «С начала посещений».
Наконец, можно произвести полный сброс настроек до первоначально состояния (функция Reset) с удалением всех вышеуказанных элементов и сохраненных пользовательских данных.
Обновляем платформу .NET Framework с ручной регистрацией компонентов
Еще один, пожалуй, один из главных моментов связан с отсутствием, некорректной установкой или устареванием специальной платформы .NET Framework, без которой выполнение некоторых скриптов и исполняемых веб-апплетов является невозможным.
Для установки апдейта (который, кстати, даже при включенном апдейте в «Центре обновления» автоматически устанавливается не всегда) лучше всего обратиться к официальному ресурсу корпорации Microsoft и скачать установочный дистрибутив из раздела загрузок, после чего произвести инсталляцию в ручном режиме.
В некоторых случаях даже после окончания интегрирования платформы в систему корректно использовать ее получается не всегда. Связано это может быть с ошибками самих ОС, которые только по им самим известным причинам могут блокировать регистрацию некоторых динамических библиотек, отвечающих за выполнение скриптов Java и Visual Basic (jscript.dll и vbscript.dll).
В этом случае понадобится ручная регистрация через командную строку, запущенную с правами администратора, в которой используется команда regsvr32, а через пробел прописываются имена необходимых библиотек, как показано на изображении выше. Но при условии, что в самой ОС сбои не наблюдаются, такие действия могут и не потребоваться.
function oknoblock(el) {
var els = window.document.getElementsByClassName('okno');
for (var i=0; i<els.length; ++i) {els[i].style.display='none';};
el.firstElementChild.style.display='block';
};
Ие 8 пишет:
Объект не поддерживает это свойство или метод. Строка 2 символ 1.
В HTML функция вызывается вот так:
<div id=»n1″ onclick=»oknoblock(this)»>
задан 25 мая 2012 в 4:40
0
// "getElementsByClassName" не определен IE,
// так что этот метод можно реализовать в JavaScript
if(document.getElementsByClassName == undefined) {
document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\b'+cl+'\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) {
retnode.push(elem[i]);
}
}
return retnode;
}
};
Взято из: http://web.izjum.com/getelementsbyclassname-on-javascript
ответ дан 25 мая 2012 в 5:09
Dobby007Dobby007
1,3751 золотой знак14 серебряных знаков26 бронзовых знаков
3
Вместо firstElementChild в IE<9 используйте:
var node = this.firstChild,
firstElementChild = null;
for ( ; node; node = node.nextSibling) {
if (node.nodeType === 1) {
firstElementChild = node;
break;
}
}
в firstElementChild
окажется первый тэг
Взято с сайта stack overflow
ответ дан 25 мая 2012 в 6:03
RulesRules
4,93610 золотых знаков33 серебряных знака62 бронзовых знака
3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
|
1 |
|
1С Web 07.01.2016, 12:15. Показов 13521. Ответов 13
На форме поле HTML документа, при загрузке страницы сайта несколько раз подряд валятся ошибки сценария: «Объект не поддерживает это свойство или метод». В Свойствах обозревателя IE выставлены галочки «Отключить отладку сценариев (Internet Explorer)» и «Отключить отладку сценариев (другие)», убрана галочка «Показывать сообщения о каждой ошибке сценария».
0 |
Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
|
08.01.2016, 03:42 |
2 |
GreenkO, Веб клиент? Добавлено через 37 секунд
0 |
GreenkA 3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
||||||||
08.01.2016, 23:49 [ТС] |
3 |
|||||||
Dethmontt, нет, просто поле HTML документа на форме документа, куда я передаю адрес страницы сайта для дальнейшего считывания информации. Там еще требуется авторизация:
Нашла, что можно выставить свойство браузера, тем самым «заткнуть» его. К примеру:
Теперь вопрос: как мне через этот ком-объект отобразить загрузившуюся через него страницу в поле HTML документа на форме(у меня там еще поля для ввода Пользователя и Пароля и пр. инфы)? И что будет теперь с авторизацией…
0 |
Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
|
09.01.2016, 03:22 |
4 |
GreenkO, так положи на форму ActiveX — Web browser control и работай с ним как с Поле ХТМЛ документа (но у него есть свойство Silent) Добавлено через 1 минуту Добавлено через 2 минуты
appIE = Новый COMОбъект(«InternetExplorer.Application»); Кстати это тоже не ИЕ это специальная библиотека Добавлено через 1 минуту
1 |
GreenkA 3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
||||
09.01.2016, 23:02 [ТС] |
5 |
|||
GreenkO, так положи на форму ActiveX — Web browser control и работай с ним как с Поле ХТМЛ документа (но у него есть свойство Silent) вот только у меня управляемая форма… Добавлено через 57 минут
Но этот сайт ничем не проймешь…
0 |
Заблокирован |
|
14.01.2016, 04:34 |
6 |
а сам код страницы не изменить ? Добавлено через 34 минуты Добавлено через 37 минут
0 |
Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
|
14.01.2016, 11:37 |
7 |
Gokusa, а ты попробуй перейти например на вкладку «Контакты»!!!
0 |
Заблокирован |
|
14.01.2016, 18:17 |
8 |
у меня в веб клиенте ошибок нет — все соответствует тому что и на обычной странице, режим совмести отключен совсем, браузер мазилла и хром.
0 |
Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
|
14.01.2016, 21:42 |
9 |
у меня в веб клиенте ошибок нет Такого не может быть, поле ХТМЛ документа не умеет обрабатывать скрипты подключенные как файлы js так как он не загружает их на клиента
0 |
Заблокирован |
|
14.01.2016, 21:46 |
10 |
я тебе говорю 100%
0 |
Модератор 3724 / 2918 / 575 Регистрация: 10.03.2011 Сообщений: 11,491 Записей в блоге: 1 |
|
14.01.2016, 21:54 |
11 |
Gokusa, попробуй на Google и Яндексе
0 |
0 / 0 / 0 Регистрация: 10.07.2017 Сообщений: 2 |
|
21.04.2018, 20:39 |
12 |
Доброго времени суток! Удалось разобраться с этим вопросом?
0 |
1904 / 1304 / 465 Регистрация: 16.01.2015 Сообщений: 5,677 |
|
22.04.2018, 22:45 |
13 |
Создание Тьмы, Не знаю насколько это правильно, но для себя делал совсем просто и кардинально. Искал на встраиваемой странице скрипты по тэгам <script> … </script> и сносил их. Ошибки сценария ушли информация осталась )))
0 |
0 / 0 / 0 Регистрация: 10.07.2017 Сообщений: 2 |
|
25.04.2018, 16:34 |
14 |
polax, я пока пошёл путём ком-объекта, но происходит что-то странное, как будто пропадает доступ к нему и обработка валится в разных местах, иногда на переходе по второй ссылке appIE.Navigate(«https://***/»);, и всегда после обновления страницы при повторной попытке получить appIE.document.getElementsByClassName(«***»);
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
25.04.2018, 16:34 |
Помогаю со студенческими работами здесь Написание сценария Ошибка сценария Вставка сценария Файл сценария Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 14 |