Пытаюсь отладить на сафари 9 мобильной. Т.к. для винды нет возможностей тестирования, смотрю IE 11. Сайт выглядит и там и там одинаково (корзина вся на js построена). Там вот такая ошибка есть в консоли: TypeError: Объект не поддерживает свойство или метод «forEach». Посмотрел поддержку forEach: она отличная. Что посоветуете?
-
Вопрос заданболее трёх лет назад
-
3173 просмотра
Посмотрел поддержку forEach: она отличная.
Это другой forEach
— принадлежащий Array.prototype
. У вас ошибка возникает из-за отсутствия NodeList.prototype.forEach
. Используйте полифилл.
Скорей всего вы пытаетесь использовать NodeList.prototype.forEach(), который в IE не поддерживается.
Можно использовать полифилл.
Можно для перебора NodeList использовать метод массива:
var list = document.querySelectorAll( 'input[type=checkbox]' );
Array.prototype.forEach.call(list, function (item) {
// do something
});
Пригласить эксперта
-
Показать ещё
Загружается…
12 февр. 2023, в 22:43
5000 руб./за проект
09 февр. 2023, в 13:28
777 руб./за проект
12 февр. 2023, в 21:32
80000 руб./за проект
Минуточку внимания
function getAllElements() {
var elements = [];
['input','select'].forEach(function (nodeName) {
elements.push.apply(elements , document.getElementsByTagName(nodeName));
});
return elements;
}
document.onclick=new function(){
var buff = getAllElements().map(function (el) {
return el.name;
}).join();
alert(buff);
}
}
IE жалуется на строку ['input','select'].forEach(function (nodeName)
{
«Объект не поддерживает это свойство или метод»
подскажите решение проблемы?
Deleted
3611 золотой знак5 серебряных знаков13 бронзовых знаков
задан 14 авг 2014 в 19:28
если без лишних скриптов, то не используйте методы из es5. Или же реализуйте их сами :
// Production steps of ECMA-262, Edition 5, 15.4.4.18
// Reference: http://es5.github.com/#x15.4.4.18
if (!Array.prototype.forEach) {
Array.prototype.forEach = function (callback, thisArg) {
var T, k;
if (this == null) {
throw new TypeError(" this is null or not defined");
}
// 1. Let O be the result of calling ToObject passing the |this| value as the argument.
var O = Object(this);
// 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
// 3. Let len be ToUint32(lenValue).
var len = O.length >>> 0;
// 4. If IsCallable(callback) is false, throw a TypeError exception.
// See: http://es5.github.com/#x9.11
if (typeof callback !== "function") {
throw new TypeError(callback + " is not a function");
}
// 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
if (arguments.length > 1) {
T = thisArg;
}
// 6. Let k be 0
k = 0;
// 7. Repeat, while k < len
while (k < len) {
var kValue;
// a. Let Pk be ToString(k).
// This is implicit for LHS operands of the in operator
// b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
// This step can be combined with c
// c. If kPresent is true, then
if (k in O) {
// i. Let kValue be the result of calling the Get internal method of O with argument Pk.
kValue = O[k];
// ii. Call the Call internal method of callback with T as the this value and
// argument list containing kValue, k, and O.
callback.call(T, kValue, k, O);
}
// d. Increase k by 1.
k++;
}
// 8. return undefined
};
}
ответ дан 14 авг 2014 в 19:59
alvoroalvoro
3,05511 серебряных знаков19 бронзовых знаков
2
Мне помог polyfill отсюда Polyfill
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = Array.prototype.forEach;
}
ответ дан 17 дек 2020 в 13:44
Elevyr |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
На сайте казначейства при попытке сформировать сертификат выдаёт ошибку: «При формировании запроса произошла ошибка: TypeError: Объект не поддерживает свойство или метод «CreateObject»» Отредактировано пользователем 15 октября 2018 г. 12:18:31(UTC) |
|
|
Александр Лавник |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз |
Автор: Elevyr На сайте казначейства при попытке сформировать сертификат выдаёт ошибку: «При формировании запроса произошла ошибка: TypeError: Объект не поддерживает свойство или метод «CreateObject»» Добрый день. Проверьте работу плагина на этой тестовой странице (при возникновении всплывающих окон выбирайте Разрешить на всех сайтах). После успешного создания подписи на тестовой странице попробуйте сформировать сертификат на сайте казначейства (после обновления страницы сайта казначейства). |
Техническую поддержку оказываем тут |
|
|
|
Elevyr |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Автор: Александр Лавник Автор: Elevyr На сайте казначейства при попытке сформировать сертификат выдаёт ошибку: «При формировании запроса произошла ошибка: TypeError: Объект не поддерживает свойство или метод «CreateObject»» Добрый день. Проверьте работу плагина на этой тестовой странице (при возникновении всплывающих окон выбирайте Разрешить на всех сайтах). После успешного создания подписи на тестовой странице попробуйте сформировать сертификат на сайте казначейства (после обновления страницы сайта казначейства). «Подпись сформирована успешно» — этот тест проходит нормально. Может даже дело не в плагине, в винде (Windows 10 вроде не сертифицирована ФСТЭК). В Яндексе и Гугле ничего по этому поводу не нашёл. |
|
|
Александр Лавник |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз |
Автор: Elevyr Автор: Александр Лавник Автор: Elevyr На сайте казначейства при попытке сформировать сертификат выдаёт ошибку: «При формировании запроса произошла ошибка: TypeError: Объект не поддерживает свойство или метод «CreateObject»» Добрый день. Проверьте работу плагина на этой тестовой странице (при возникновении всплывающих окон выбирайте Разрешить на всех сайтах). После успешного создания подписи на тестовой странице попробуйте сформировать сертификат на сайте казначейства (после обновления страницы сайта казначейства). «Подпись сформирована успешно» — этот тест проходит нормально. Может даже дело не в плагине, в винде (Windows 10 вроде не сертифицирована ФСТЭК). В Яндексе и Гугле ничего по этому поводу не нашёл. Если ошибка на сайте казначейства осталась, то попробуйте добавить адрес сайта казначейства в надежные сайты Internet Explorer: символ шестеренки в правом верхнем углу Internet Explorer |
Техническую поддержку оказываем тут |
|
|
|
Elevyr |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Автор: Александр Лавник Автор: Elevyr Автор: Александр Лавник Автор: Elevyr На сайте казначейства при попытке сформировать сертификат выдаёт ошибку: «При формировании запроса произошла ошибка: TypeError: Объект не поддерживает свойство или метод «CreateObject»» Добрый день. Проверьте работу плагина на этой тестовой странице (при возникновении всплывающих окон выбирайте Разрешить на всех сайтах). После успешного создания подписи на тестовой странице попробуйте сформировать сертификат на сайте казначейства (после обновления страницы сайта казначейства). «Подпись сформирована успешно» — этот тест проходит нормально. Может даже дело не в плагине, в винде (Windows 10 вроде не сертифицирована ФСТЭК). В Яндексе и Гугле ничего по этому поводу не нашёл. Если ошибка на сайте казначейства осталась, то попробуйте добавить адрес сайта казначейства в надежные сайты Internet Explorer: символ шестеренки в правом верхнем углу Internet Explorer Сайт казначейства само собой добавлен в Надежные сайты. |
|
|
Александр Лавник |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз |
Автор: Elevyr Автор: Александр Лавник Автор: Elevyr Автор: Александр Лавник Автор: Elevyr На сайте казначейства при попытке сформировать сертификат выдаёт ошибку: «При формировании запроса произошла ошибка: TypeError: Объект не поддерживает свойство или метод «CreateObject»» Добрый день. Проверьте работу плагина на этой тестовой странице (при возникновении всплывающих окон выбирайте Разрешить на всех сайтах). После успешного создания подписи на тестовой странице попробуйте сформировать сертификат на сайте казначейства (после обновления страницы сайта казначейства). «Подпись сформирована успешно» — этот тест проходит нормально. Может даже дело не в плагине, в винде (Windows 10 вроде не сертифицирована ФСТЭК). В Яндексе и Гугле ничего по этому поводу не нашёл. Если ошибка на сайте казначейства осталась, то попробуйте добавить адрес сайта казначейства в надежные сайты Internet Explorer: символ шестеренки в правом верхнем углу Internet Explorer Сайт казначейства само собой добавлен в Надежные сайты. Тогда, вероятно, с этой проблемой Вам смогут помочь только в технической поддержке сайта казначейства. |
Техническую поддержку оказываем тут |
|
|
|
1 пользователь поблагодарил Александр Лавник за этот пост. |
Elevyr
оставлено 15.10.2018(UTC) |
Elevyr |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Автор: Александр Лавник Автор: Elevyr Автор: Александр Лавник Автор: Elevyr Автор: Александр Лавник Автор: Elevyr На сайте казначейства при попытке сформировать сертификат выдаёт ошибку: «При формировании запроса произошла ошибка: TypeError: Объект не поддерживает свойство или метод «CreateObject»» Добрый день. Проверьте работу плагина на этой тестовой странице (при возникновении всплывающих окон выбирайте Разрешить на всех сайтах). После успешного создания подписи на тестовой странице попробуйте сформировать сертификат на сайте казначейства (после обновления страницы сайта казначейства). «Подпись сформирована успешно» — этот тест проходит нормально. Может даже дело не в плагине, в винде (Windows 10 вроде не сертифицирована ФСТЭК). В Яндексе и Гугле ничего по этому поводу не нашёл. Если ошибка на сайте казначейства осталась, то попробуйте добавить адрес сайта казначейства в надежные сайты Internet Explorer: символ шестеренки в правом верхнем углу Internet Explorer Сайт казначейства само собой добавлен в Надежные сайты. Тогда, вероятно, с этой проблемой Вам смогут помочь только в технической поддержке сайта казначейства. Вот что ответило Казначейство: |
|
|
Александр Лавник |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз |
Добрый день. Проверка на нашей тестовой странице проходит корректно? Приложите скриншот. |
Техническую поддержку оказываем тут |
|
|
|
Elevyr |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Автор: Александр Лавник Добрый день. Проверка на нашей тестовой странице проходит корректно? Приложите скриншот. Да, корректно, пишет «Плагин загружен» и горит зелёный индикатор. |
|
|
Elevyr |
|
Статус: Новичок Группы: Участники Сказал(а) «Спасибо»: 1 раз |
Автор: Александр Лавник Добрый день. Проверка на нашей тестовой странице проходит корректно? Приложите скриншот. Александр, опять то же самое: При формировании запроса произошла ошибка: TypeError: Объект не поддерживает свойство или метод «CreateObject». |
|
|
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Я создал приложение rails, в котором я создал базу данных (пустую). Когда я пытаюсь просмотреть страницу своих продуктов, я получаю следующую ошибку на моей странице http: // localhost: 3000 / products. До переноса базы данных приложение работало. Я использую therubyracer и работаю в Windows 7.
ExecJS :: ProgramError в Products # index Отображается C: /RailsInstaller/DevKit/home/JP/nameofapp/app/views/layouts/application.html.erb, где поднята строка # 16: TypeError: объект не поддерживает это свойство или метод (в C: /RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee) Извлеченный источник (около строки № 16): 13 <script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js'></script> 14 15 <% = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true%> 16 <% = javascript_include_tag 'application', 'data-turbolinks-track' => true%> 17 <% = csrf_meta_tags%> 18 19 Rails.root: C: / RailsInstaller / DevKit / home / JP / nameofapp
Вот что у меня получилось на сервере Rails:
Started GET "/ products" для 127.0.0.1 в 2015-04-23 22:28:06 -0400 ActiveRecord :: SchemaMigration Load (0,0 мс) SELECT "schema_migrations". * FROM "schema_migrations" Обработка ProductsController # index как продукт HTML Загрузить (0,0 мс) ВЫБРАТЬ «продукты». * ИЗ «продукты» Обработанные продукты / index.html.erb в макетах / приложении (4,0 мс) Завершено 500 внутренних ошибок сервера за 3391 мс ActionView :: Template :: Error (TypeError: Object doesn не поддерживает это свойство или метод (в C: /RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/turbolinks-2.5.3/lib/ assets / javascripts / turbolinks.js.coffee)): 13: <script src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.mi n.js'></script> 14: 15: <% = stylesheet_link_tag 'application', media: 'all', 'data-turbolin ks-track' => true%> 16: <% = javascript_include_tag 'application', 'data-turbolinks-track' => t rue%> 17: <% = csrf_meta_tags%> 18:19: app / views / layouts / application.html.erb: 16: в `_app_views_layouts_application_h tml_erb__912949727_56715336 'Визуализированный C: /RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/actionpack-4.1.8 / lib / action /middleware/templates/rescues/_trace.html.erb (1.0ms) Обработано C: /RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/actionpack-4.1.8 / lib / action_dispatch / middleware / templates / rescues / _request_and_response.html.erb (6.0ms) Обработано C: /RailsInstaller/Ruby2.1.0/lib/ruby/gems/2.1.0/gems/actionpack-4.1.8 / lib / action_dispatch / middleware / templates / rescues /template_error.html.erb в rescues / layout (27,0 мс)
Спасибо за любую помощь.
- Одна из возможных причин этого может заключаться в том, что установленный вами гем устарел или его необходимо обновить до более новой версии. Вы пытались удалить ‘data-turbolinks-track’ => true, просто чтобы посмотреть, изменится ли это что-нибудь?
- Спасибо за предложение. У меня есть последняя версия: execjs 2.5.2 и turbolinks 2.5.3. Когда я удалил <% = javascript_include_tag ‘application’, ‘data-turbolinks-track’ => true%>, он работал как FYI.
- возможный дубликат Rails-4, ExecJS :: ProgramError в Pages # welcome
- Ссылка ниже, помогите мне исправить ту же проблему. stackoverflow.com/questions/12520456/…
Я удалил require_tree из application.js, и он сработал
- 1 Это не решает проблему и вызывает проблемы с любым гемом / зависимостью, зависящей от js-части конвейера активов.
Ошибка возникает из-за проблемы с поиском правильных ресурсов, находящихся в app / assets. Чтобы решить эту проблему, вы можете выполнить следующие действия.
добавлять драгоценный камень ‘кофе-скрипт-источник’, ‘1.8.0’ в Gemfile и запустите установка пакета затем беги пакет обновления кофе-скрипт-источник Перезапустите сервер rails. Или есть грязный обходной путь, который заключается в изменении кода с
к
Но обратите внимание, что этот обходной путь на самом деле не решает проблему с приложением, он просто заставляет ваше приложение работать без ожидаемых таблиц стилей и javascripts.
- Я просто добавил «жемчужные рельсы для кофе», а затем собрал, и все вернулось в норму. На всякий случай, если это кому-то поможет, я работаю над Windows и построил проект с помощью команды «без кофе-скрипта».
- gem ‘coffee-script-source’, ‘1.8.0’ было решением. Даже coffee-script-source 1.12 по-прежнему не работает в Windows.
Я думаю, что лучшим решением является удаление косой черты в файле application.js, например
У меня тоже была эта проблема, ознакомьтесь с обширным решением в этом потоке, ExecJS :: RuntimeError в Windows, пытаясь следовать rubytutorial от @Kevin P. Кроме того, решение @evedoevelli в другом потоке: Rails ExecJS :: ProgramError in Pages # Главная? работает. Я использовал второе решение, которое было самым последним по дате.
- Последняя ссылка мне помогла. Большое спасибо!
Для меня решением было удалить-
от
приложение виды макет application.html.erb
После тщательного исследования я наткнулся на это решение. Просто убедитесь, что у вас установлена последняя версия NodeJs. После установки NodeJs обязательно перезапустите нашу систему. Однако очень важно обновить ОС Windows. Все должно быть в порядке. Если вы используете RubyMine, все должно работать. Не нужно ломать голову над проблемой кофейного сценария. Ошибка программы ExecJs, похоже, больше связана с NodeJs и связанными с ним модулями.
Причина в том, что NodeJS не установлен. Если вы установите его, проблема должна исчезнуть.
Однако это также будет работать в :
Но это просто не лучший метод, потому что все это приводит к отключению функциональности рельсов. Например, ActionCable не будет работать с этим изменением.
Если вы не используете макеты, поместите «layout false» в файл контроллера сразу под заголовком класса:
class ABCController
Произошло исключение Имя ошибки TypeError. Объект сообщения об ошибке не поддерживает. (100% РЕШЕНИЕ ИСПРАВЛЕНИЯ)
Мне нужно просто посчитать количество областей на листе. Код, который у меня есть:
Sub areas() Dim i As Long i = Worksheets('Sheet2').Selection.Areas.Count MsgBox i End Sub
Но по какой-то причине я получаю сообщение об ошибке «Объект не поддерживает это свойство или метод». Понятия не имею почему. Этот код был просто скопирован с веб-сайта Microsoft.
Я даже не могу получить немедленное окно для печати Worksheets('Sheet2').Selection.Areas.Count
часть.
Любая быстрая помощь? Я использую Excel 2010.
Спасибо.
- откуда вы это скопировали?
- В центре разработки MSDN приводится пример «Selection.Areas.Count». Все, что я сделал, это добавил часть «Рабочие листы …».
- так что я не могу добавить ссылку на конкретный лист?
Объект не поддерживает это свойство или метод.
Подумайте об этом, как если бы что-нибудь после точки было вызвано на объекте. Это похоже на цепь.
Объект — это экземпляр класса. Экземпляр класса поддерживает некоторые свойства, определенные в определении этого типа класса. Он раскрывает все, что вам говорит интеллект VBE (есть некоторые скрытые участники, но это не связано с этим). Итак, после каждой точки .
вы получаете интеллект (этот белый выпадающий список) пытаясь помочь вам выбрать правильный действие.
(вы можете начать в любом направлении — спереди назад или сзади вперед, как только вы поймете, как это работает, вы сможете определить, где возникает проблема)
Введите это в любом месте вашего кода
Dim a As Worksheets a.
вам поможет VBE, это небольшое раскрывающееся меню под названием Intelli-sense
В нем перечислены все доступные действия этот конкретный объект доступен любому пользователю. Вы не можете увидеть .Selection
член Worksheets()
класс. Это именно то, о чем вам говорит ошибка.
Объект не поддерживает это свойство или метод.
Если вы посмотрите пример на MSDN
Worksheets('GRA').Activate iAreaCount = Selection.Areas.Count
Это activates
лист сначала вызывает Selection...
это не связано вместе, потому что Selection
не является членом Worksheets()
класс. Просто ты не можешь префикс то Selection
Что о
Sub DisplayColumnCount() Dim iAreaCount As Integer Dim i As Integer Worksheets('GRA').Activate iAreaCount = Selection.Areas.Count If iAreaCount <= 1 Then MsgBox 'The selection contains ' & Selection.Columns.Count & ' columns.' Else For i = 1 To iAreaCount MsgBox 'Area ' & i & ' of the selection contains ' & _ Selection.Areas(i).Columns.Count & ' columns.' Next i End If End Sub
отсюда
- поэтому я не могу использовать ссылку на диапазон, отличную от «Selection»?
- Конечно вы можете. Но вам нужен экземпляр
Range
класс.
Tweet
Share
Link
Plus
Send
Send
Pin