Что означает прерывание загрузки фрейма?
Веб-фреймы (iframe) являются важным инструментом для более эффективного отображения информации на веб-страницах. Однако, иногда загрузка фрейма может быть прервана, что может исказить пользовательский опыт и повлиять на функциональность сайта.
Основные причины прерывания загрузки фрейма могут быть различными. Одной из них является отсутствие доступа к контенту, который должен быть загружен в фрейме. Это может произойти из-за неправильно указанного пути к файлу или из-за отсутствия соответствующих разрешений для доступа к этому файлу.
Еще одной причиной прерывания загрузки фрейма может быть ошибка в самом контенте, который должен быть загружен в фрейм. Некорректно написанный или неподдерживаемый скрипт, ошибки в HTML или CSS коде могут привести к прерыванию загрузки фрейма.
Однако, несмотря на причины прерывания загрузки фрейма, существует несколько способов исправления этой проблемы. Проверка правильности указания пути к файлу и наличие необходимых разрешений являются первыми шагами при решении данной проблемы. Также следует проверить и исправить ошибки в содержимом фрейма. Однако, если проблема не может быть решена самостоятельно, рекомендуется обратиться к специалисту веб-разработчику для дальнейшего исправления проблемы загрузки фрейма.
Прерывание загрузки фрейма: причины и исправление
Загрузка фрейма может быть прервана из-за различных причин. Важно разобраться, почему это происходит, чтобы найти соответствующее решение проблемы.
Причины прерывания загрузки фрейма:
- Проблемы с сетевым подключением: если подключение нестабильно или медленное, загрузка фрейма может быть прервана. В этом случае, необходимо проверить соединение или перезагрузить роутер.
- Неправильная конфигурация сервера: некорректные настройки сервера могут приводить к проблемам с загрузкой фрейма. Необходимо проверить файл .htaccess или связаться с хостинг-провайдером для получения помощи.
- Конфликты с другими скриптами или плагинами: иногда при загрузке фрейма возникают конфликты с другими скриптами или плагинами на странице. В этом случае, необходимо отключить или обновить другие расширения, чтобы избавиться от конфликтов.
- Отключение браузером: в некоторых случаях, браузер может прервать загрузку фрейма, если он считает, что это небезопасно или если он обнаруживает уязвимости. В таких ситуациях, необходимо проверить настройки безопасности браузера или использовать другой браузер.
Способы исправления прерывания загрузки фрейма:
- Проверьте подключение к Интернету: убедитесь, что у вас стабильное соединение с Интернетом и нет проблем со скоростью загрузки.
- Проверьте настройки сервера: убедитесь, что настройки сервера правильно сконфигурированы и не препятствуют загрузке фрейма.
- Отключите другие скрипты или плагины: временно отключите другие скрипты или плагины, чтобы исключить возможные конфликты.
- Используйте безопасный браузер: если проблема связана с безопасностью браузера, попробуйте использовать другой браузер или настройте безопасность текущего браузера.
Если проблема с прерыванием загрузки фрейма все еще остается, рекомендуется обратиться за помощью к специалистам или разработчикам веб-сайта. Они смогут провести более детальный анализ проблемы и предоставить более точное решение.
Что приводит к прерыванию загрузки фрейма?
Загрузка фрейма может быть прервана по разным причинам. Вот некоторые из них:
1. Проблемы с сетевым подключением:
Если у пользователя возникли проблемы с интернет-соединением, например, низкая скорость или потери пакетов данных, это может привести к прерыванию загрузки фрейма. Обрыв соединения может произойти посередине загрузки страницы, из-за чего фрейм не будет загружен полностью.
2. Ошибки на сервере:
Если на сервере, с которого запрашивается фрейм, возникла ошибка, загрузка фрейма может быть прервана. Это может произойти из-за неправильной конфигурации сервера, ошибок в коде или других причин.
3. Проблемы с фреймом или внедренным контентом:
Фрейм может использовать сторонний контент, такой как скрипты, стили или изображения. Если этот контент недоступен или его загрузка происходит с ошибками, это может привести к прерыванию загрузки фрейма.
4. Блокировка загрузки:
Некоторые браузеры или расширения могут блокировать загрузку фреймов с целью защиты пользователя от потенциально опасного или нежелательного контента. В результате, загрузка фрейма может быть прервана или заблокирована.
В случае прерывания загрузки фрейма, пользователь может столкнуться с недоступным или неполностью загруженным контентом на странице. Для исправления проблемы можно попробовать обновить страницу, проверить сетевое подключение, проверить наличие ошибок на сервере или попробовать отключить блокировку фреймов в браузере.
Как решить проблему прерывания загрузки фрейма?
Если у вас возникает проблема с прерыванием загрузки фрейма, есть несколько способов исправить ситуацию:
1. Проверьте соединение с Интернетом: убедитесь, что у вас есть стабильное соединение с Интернетом. Перезагрузите роутер или модем, попробуйте подключиться к другой сети Wi-Fi или использовать мобильный интернет.
2. Очистите кеш и данные браузера: загрузка фрейма может быть прервана из-за проблем с кэшированием. Очистите кеш и данные браузера, чтобы удалить ненужные файлы, историю посещений и сохраненные пароли. Попробуйте затем загрузить фрейм еще раз.
3. Обновите браузер до последней версии: иногда проблемы с загрузкой фрейма могут быть связаны с устаревшей версией браузера. Установите последнюю доступную версию вашего браузера или попробуйте использовать другой браузер.
4. Проверьте доступность сайта, содержащего фрейм: возможно, сайт, содержащий фрейм, временно недоступен или не работает должным образом. Проверьте доступность сайта, используя другое устройство или проверку онлайн-сервисов. Если сайт недоступен, попробуйте повторить попытку позже.
5. Используйте безопасный режим: если проблема с загрузкой фрейма возникает только на определенном сайте, попробуйте открыть его в безопасном режиме. Это позволит исключить возможность влияния расширений, которые могут вызывать конфликты с фреймом.
Если ни один из этих способов не помог в решении проблемы, рекомендуется обратиться к специалисту по технической поддержке браузера или разработчику сайта, на котором возникает проблема загрузки фрейма.
UPD: InSync работает без проблем
У некоторых пользователей есть проблема при входе в мобильный банк InSync. Мы уже работаем над тем, чтобы восстановить сервис – проблема связана с обновлением сертификата безопасности.
Несколько часов пользователи Android и iOS могут сталкиваться с ошибкой, когда входят в приложение. На это время советуем использовать интернет-банк Альфа-Клик.
Что нужно сделать?
Обновите приложение до последней версии. Для iOS это можно сделать в маркете App Store. Для Android – по ссылке, а для Huawei – в AppGallery.
Остаемся на связи: как только сертификат обновится, мы вернемся с новостями.
- Альфа-Бизнес Мобайл работает без проблем.
Нам жаль, что из-за неполадки вы не смогли воспользоваться мобильным банком. Команда Альфы приносит извинения за это.
WEB start
Компьютеры. Интернет. Профессиональное обучение. 055-966-10-17
Программирование на JavaScript, DOM
- DOM — обработка событий (Events)
- DOM — объекты CSS
- DOM объект — Element
- DOM объект — window
- DOM объект Document
- DOM объект Window
- DOM объекты браузера
- JavaScript — массивы (Array)
- JavaScript — объект Date
- JavaScript — объект Math
- JavaScript — объекты
- JavaScript — операторы языка
- JavaScript — работа со строками
- JavaScript AJAX
- JavaScript регулярные выражения
- Программирование на JavaScript, DOM
Наши преимущества
- Наши программы обучения ориентированы на конкретного слушателя. Вы можете обучаться по одной из предложенных Вам программ, а можете самостоятельно составить, откорректировать, откорректировать свою персональную программу обучения. Преподаватель, консультант помогают Вам сориентироваться в материале курса при выборе программы обучения.
- Обучение индивидуальное. Преподаватель проводит занятие только для Вас, ориентируясь на Ваши возможности, предыдущие знания и опыт, скорость восприятия нового материала.
- Вы учитесь в удобное для Вас время , в удобной для Вас форме, может быть выбран гибкий график занятий, в соответствии с Вашими возможностями и пожеланиями.
- Обучение проводится дистанционно . Вы можете обучаться, сидя за Вашим компьютером дома или на работе, не тратя время на поездки к месту обучения.
Регистрация на сайте
Дополнительные материалы
- API WEB — уведомлений (Notifications)
- CSS — шрифты
- CSS3 адаптивные блоки (Flex Box Model)
- HTML5 — элемент CANVAS, рисование
- HTML5 семантические элементы
- Joomla, компонент Sourcerer
- Visual Studio Code для HTML, CSS, SASS, JavaScript
- WordPress — дочерние темы
- Вставка видео в HTML документ
- Построение многоязычных сайтов на CMS WordPress
- Создание шаблонов для Joomla 3.x
Вы здесь: Главная > Программирование > JavaScript. DOM > DOM — обработка событий (Events)
DOM — обработка событий (Events)
Обновлено: 01.11.2018 16:33
DOM — обработка событий (Events)
Браузер отслеживает события которые происходят в его окне. События могут быть привязаны к определенному элементу, группе элементов, или к окну браузера.
События могут генерироваться как пользователем (например: перемещение мышки) так и системой (например: законцилась анимация )
События могут быть разных типов, например:
- нажатия клавиш мыши, перемещение курсора
- нажатие клавиш клавиатуры
- изменение размеров окна браузеа (закрытие окна)
- загрузка страницы в окно
- заполнение формы
- воспроизведение видео
- возникновение ошибок.
Реакция на события описывается через бработчики событий (events listeners или event handlers).
Браузер постоянно отслеживает все события, при его возникновении (event firing) он ищет назначенную этому событию фукцию-обработчик события и запускает её (если она найдена).
То есть: события, как правило, используются в сочетании с функциями, функция не будет выполняться до возникновения события (например, до того, как пользователь нажал на кнопку).
Типы событий
События, связанные с мышью (mouse events)
Событие | Описание | DOM |
---|---|---|
onclick | Клик левой кнопкой мыши | 2 |
oncontextmenu | Клик правой кнопкой мышки | 3 |
ondblclick | Два клика подряд левой кнопкой | 2 |
onmousedown | Нажатие левой кнопки мышки | 2 |
onmouseenter | Курсор попал на элемент | 2 |
onmouseleave | Курсор ушёл с элемента | 2 |
onmousemove | Курсор переместился, находясь над элементом | 2 |
onmouseover | Курсор находится над элементом или его дочерними элементами | 2 |
onmouseout | Курсор ушёл с области самого элемента или одного из его дочерних элементов | 2 |
onmouseup | Отпускание левой кнопки мышки | 2 |
События клавиатуры (keyboard events)
Событие | Описание | DOM |
---|---|---|
onkeydown | Нажатие кнопки клавиатурв | 2 |
onkeypress | Нажатие и отпускание кнопки клавиатуры | 2 |
onkeyup | Отпускание кнопки клавиатуры | 2 |
События объекта frame (frame/window events)
Собвтие | Описание | DOM |
---|---|---|
onabort | Загрузка документа в фрейм прервана | 2 |
onbeforeunload | Начало загрузки документа в фрейм | 2 |
onerror | Ошибка загрузки файла в фрейм | 2 |
onhashchange | Изменился параметр anchor фрейма | 3 |
onload | Загрузка документа в фрейм | 2 |
onpageshow | Событие происходит, когда пользователь переходит на веб-страницу | 3 |
onpagehide | Событие происходит, когда пользователь уходит с веб-страницы | 3 |
onresize | Событие возникает, когда размер окна документа изменяется | 2 |
onscroll | Событие происходит при прокрутке элемента | 2 |
onunload | Событие происходит после выгрузки страницы (для ) | 2 |
События, связанные с формой (form events)
Событие | Описание | DOM |
---|---|---|
onblur | Событие происходит, когда элемент теряет фокус | 2 |
onchange | Событие происходит, когда изменилось содержимое элемента формы (для , , и ) | 2 |
onfocus | Событие возникает, когда элемент получает фокус | 2 |
onfocusin | Событие возникает, когда элемент собирается получить фокус | 2 |
onfocusout | Событие происходит, когда элемент теряет фокус | 2 |
oninput | Событие возникает, когда элемент получает пользовательский ввод | 3 |
oninvalid | Событие oninvalid происходит, когда элемент недопустим. | 3 |
onreset | Событие происходит, когда форма сбрасывается | 2 |
onsearch | Событие возникает, когда пользователь что-то пишет в поле поиска (для ) | 3 |
onselect | Событие происходит после выбора пользователем текста (для и ) | 2 |
onsubmit | Событие происходит при отправке формы | 2 |
События drag/drop
Событие | Описание | DOM |
---|---|---|
ondrag | Событие возникает, когда элемент перетаскивается | 3 |
ondragend | Событие происходит, когда пользователь закончил перетаскивание элемента | 3 |
ondragenter | Событие возникает, когда элемент перетаскивания входит в целевую точку | 3 |
ondragleave | Событие происходит, когда элемент перетаскивания оставляет целевую точку | 3 |
ondragover | Событие происходит, когда элемент перетаскивания находится над целевой точкой перетаскивания | 3 |
ondragstart | Событие возникает, когда пользователь начинает перетаскивать элемент | 3 |
ondrop | Событие происходит, когда перетаскиваемый элемент выбрасывается в целевой точке | 3 |
Clipboard — события
Событие | Описание | DOM |
---|---|---|
oncopy | Событие происходит, когда пользователь копирует содержимое элемента | |
oncut | Событие происходит, когда пользователь вырезает содержимое элемента | |
onpaste | Событие возникает, когда пользователь вставляет некоторый контент в элемент |
Print — события
Событие | Описание | DOM |
---|---|---|
onafterprint | Событие происходит, когда страница начала печать, или если диалоговое окно печати закрывается | 3 |
onbeforeprint | Событие происходит, когда страница будет напечатана | 3 |
Media — события
Событие | Описание | DOM |
---|---|---|
onabort | The event occurs when the loading of a media is aborted | 3 |
oncanplay | The event occurs when the browser can start playing the media (when it has buffered enough to begin) | 3 |
oncanplaythrough | The event occurs when the browser can play through the media without stopping for buffering | 3 |
ondurationchange | The event occurs when the duration of the media is changed | 3 |
onemptied | The event occurs when something bad happens and the media file is suddenly unavailable (like unexpectedly disconnects) | 3 |
onended | The event occurs when the media has reach the end (useful for messages like «thanks for listening») | 3 |
onerror | The event occurs when an error occurred during the loading of a media file | 3 |
onloadeddata | The event occurs when media data is loaded | 3 |
onloadedmetadata | The event occurs when meta data (like dimensions and duration) are loaded | 3 |
onloadstart | The event occurs when the browser starts looking for the specified media | 3 |
onpause | The event occurs when the media is paused either by the user or programmatically | 3 |
onplay | The event occurs when the media has been started or is no longer paused | 3 |
onplaying | The event occurs when the media is playing after having been paused or stopped for buffering | 3 |
onprogress | The event occurs when the browser is in the process of getting the media data (downloading the media) | 3 |
onratechange | The event occurs when the playing speed of the media is changed | 3 |
onseeked | The event occurs when the user is finished moving/skipping to a new position in the media | 3 |
onseeking | The event occurs when the user starts moving/skipping to a new position in the media | 3 |
onstalled | The event occurs when the browser is trying to get media data, but data is not available | 3 |
onsuspend | The event occurs when the browser is intentionally not getting media data | 3 |
ontimeupdate | The event occurs when the playing position has changed (like when the user fast forwards to a different point in the media) | 3 |
onvolumechange | The event occurs when the volume of the media has changed (includes setting the volume to «mute») | 3 |
onwaiting | The event occurs when the media has paused but is expected to resume (like when the media pauses to buffer more data) | 3 |
Animation — события
Событие | Описание | DOM |
---|---|---|
animationend | The event occurs when a CSS animation has completed | 3 |
animationiteration | The event occurs when a CSS animation is repeated | 3 |
animationstart | The event occurs when a CSS animation has started | 3 |
Transition — события
Событие | Описание | DOM |
---|---|---|
transitionend | The event occurs when a CSS transition has completed | 3 |
Server-Sent — события
Событие | Описание | DOM |
---|---|---|
onerror | The event occurs when an error occurs with the event source | |
onmessage | The event occurs when a message is received through the event source | |
onopen | The event occurs when a connection with the event source is opened |
Другие события
Событие | Описание | DOM |
---|---|---|
onmessage | The event occurs when a message is received through or from an object (WebSocket, Web Worker, Event Source or a child frame or a parent window) | 3 |
onmousewheel | Deprecated. Use the onwheel event instead | |
ononline | The event occurs when the browser starts to work online | 3 |
onoffline | The event occurs when the browser starts to work offline | 3 |
onpopstate | The event occurs when the window’s history changes | 3 |
onshow | The event occurs when a element is shown as a context menu | 3 |
onstorage | The event occurs when a Web Storage area is updated | 3 |
ontoggle | The event occurs when the user opens or closes the element | 3 |
onwheel | The event occurs when the mouse wheel rolls up or down over an element | 3 |
Touch — события
Событие | Описание | DOM |
---|---|---|
ontouchcancel | The event occurs when the touch is interrupted | |
ontouchend | The event occurs when a finger is removed from a touch screen | |
ontouchmove | The event occurs when a finger is dragged across the screen | |
ontouchstart | The event occurs when a finger is placed on a touch screen |
Объект event
Когда происходит событие, браузер создает объект ‘event’, помещает в него детали события и передает его в качестве аргумента обработчику.
пример ниже выводит на консоль все свойства текущего объека event, созданного баузеом при клике мышкой по элементу ELEMENT .
Константы
Константа | Описание | DOM |
---|---|---|
CAPTURING_PHASE | The current event phase is the capture phase (1) | 1 |
AT_TARGET | The current event is in the target phase, i.e. it is being evaluated at the event target (2) | 2 |
BUBBLING_PHASE | The current event phase is the bubbling phase (3) | 3 |
Свойства
Свойство | Описание | DOM |
---|---|---|
bubbles | Returns whether or not a specific event is a bubbling event | 2 |
cancelable | Returns whether or not an event can have its default action prevented | 2 |
currentTarget | Returns the element whose event listeners triggered the event | 2 |
defaultPrevented | Returns whether or not the preventDefault() method was called for the event | 3 |
eventPhase | Returns which phase of the event flow is currently being evaluated | 2 |
isTrusted | Returns whether or not an event is trusted | 3 |
target | Returns the element that triggered the event | 2 |
timeStamp | Returns the time (in milliseconds relative to the epoch) at which the event was created | 2 |
type | Returns the name of the event | 2 |
view | Returns a reference to the Window object where the event occured | 2 |
Методы
Метод | Описание | DOM |
---|---|---|
preventDefault() | Cancels the event if it is cancelable, meaning that the default action that belongs to the event will not occur | 2 |
stopImmediatePropagation() | Prevents other listeners of the same event from being called | 3 |
stopPropagation() | Prevents further propagation of an event during event flow | 2 |
Объект — MouseEvent
Свойство | Описание | DOM |
---|---|---|
altKey | Возвращает, была ли нажата клавиша «ALT» при запуске события мыши | 2 |
button | Возвращает, какая кнопка мыши была нажата при запуске события мыши | 2 |
buttons | Возвращает, какие кнопки мыши были нажаты при запуске события мыши | 3 |
clientX | Возвращает горизонтальную координату указателя мыши относительно текущего окна, когда событие мыши было запущено | 2 |
clientY | Возвращает вертикальную координату указателя мыши относительно текущего окна, когда событие мыши было запущено | 2 |
ctrlKey | Возвращает, была ли нажата клавиша CTRL при запуске события мыши | 2 |
detail | Возвращает число, указывающее, сколько раз щелкнули мышь | 2 |
metaKey | Возвращает, была ли нажата клавиша «META» при срабатывании события | 2 |
pageX | Возвращает горизонтальную координату указателя мыши относительно документа, когда событие мыши было запущено | |
pageY | Возвращает вертикальную координату указателя мыши относительно документа, когда событие мыши было запущено | |
relatedTarget | Возвращает элемент, связанный с элементом, вызвавшим событие мыши | 2 |
screenX | Возвращает горизонтальную координату указателя мыши относительно экрана, когда событие было вызвано | 2 |
screenY | Возвращает вертикальную координату указателя мыши относительно экрана, когда событие было инициировано | 2 |
shiftKey | Возвращает, была ли нажата клавиша «SHIFT» при срабатывании события | 2 |
which | Возвращает, какая кнопка мыши была нажата при запуске события мыши | 2 |
Объект — KeyboardEvent
Свойство | Описание | DOM |
---|---|---|
altKey | Возвращает, была ли нажата клавиша «ALT» при срабатывании события | 2 |
ctrlKey | Возвращает, была ли нажата клавиша CTRL при срабатывании события клавиатуры | 2 |
charCode | Возвращает код символа Юникода клавиши, которая вызвала событие onkeypress | 2 |
key | Возвращает для нажатой клавиши её значение | 3 |
location | Возвращает местоположение ключа на клавиатуре или устройстве | 3 |
metaKey | Возвращает, была ли нажата клавиша «meta» при запуске события | 2 |
shiftKey | Возвращает, была ли нажата клавиша «SHIFT» при срабатывании события | 2 |
which | Возвращает код символа Юникода ключа, вызвавшего событие onkeypress, или код ключа Unicode ключа, вызвавшего событие onkeydown или onkeyup | 2 |
HashChangeEvent — объект
Property | Описание | DOM |
---|---|---|
newURL | Returns the URL of the document, after the hash has been changed | |
oldURL | Returns the URL of the document, before the hash was changed |
PageTransitionEvent — объект
Property | Описание | DOM |
---|---|---|
persisted | Returns whether the webpage was cached by the browser |
FocusEvent — объект
Property | Описание | DOM |
---|---|---|
relatedTarget | Returns the element related to the element that triggered the event | 3 |
AnimationEvent — объект
Property | Описание | DOM |
---|---|---|
animationName | Returns the name of the animation | |
elapsedTime | Returns the number of seconds an animation has been running |
TransitionEvent — объект
Property | Описание | DOM |
---|---|---|
propertyName | Returns the name of the CSS property associated with the transition | |
elapsedTime | Returns the number of seconds a transition has been running |
WheelEvent — объект
Property | Описание | DOM |
---|---|---|
deltaX | Returns the horizontal scroll amount of a mouse wheel (x-axis) | 3 |
deltaY | Returns the vertical scroll amount of a mouse wheel (y-axis) | 3 |
deltaZ | Returns the scroll amount of a mouse wheel for the z-axis | 3 |
deltaMode | Returns a number that represents the unit of measurements for delta values (pixels, lines or pages) | 3 |
Регистрация обработчика событий
Зарегистриовать обработчик событий можно разными способами.
Присвоить значение специальному атрибуту (onclick, onkeypress, onmouseenter, . ) при описании HTMl тега. Например:
Можно его изменить с помощью соответствующего свойства объекта element:
document.getElementById(‘myButton1’).onclick = ‘alert(«New action»)’
Можно использовать метод объекта element — addEventListener(event, listener). Например:
document.getElementById(‘myButton1’).addEventListener(‘click’, click2); function click2() < alert('Listener 1 - click2()'); >
document.getElementById(‘myButton1’).addEventListener(‘click’, () => < alert ('Listener 1!!'); >);
Если в этом примере ипользовать оба способа, то к элементу , к событию click будут привязаны сразу 2 обработчика.
Удаление обработчика событий
Обработчик событий, который привязан к элементу через его атрибут, можно удалить, переопределив значение атрибута.
Привязать обработчик к элементу
document.getElementById(‘myButton1′).onclick=’alert(«Event listener connected»)’;
document.getElementById(‘myButton1’).onclick=»;
Можно использовать метод элемента removeEventListener(событие, имя_обработчика)
function myFunc2() < alert("Listener myFunc2() response"); >document.getElementById(‘myButton1’).addEventListener(‘click’, myFunc2);
document.getElementById(‘myButton1’).removeEventListener(‘click’, myFunc2);
Удалить все обработчики событий у элемента можно, например, клонировав элемент (метод cloneNode()) , при этом обработчики событий не клонируются.
function removeAllEventListeners(elmntID)< var oldElement = document.getElementById(elmntID); var newElement = oldElement.cloneNode(true); oldElement.parentNode.replaceChild(newElement, oldElement); // cleanup out1 out1.innerHTML = ''; >
Events bubbling, capturing
event.target — элемент, который инициировал событие.
event.currentTarget — текущий элемент, обрабатывающий событие.
event bubbling (event propagation) — обработка события, котоое инициировал элемент, всеми его родительскими элементами (снизу вверх или от дочернего элемента).
event.eventPhase — фаза обработки события (capturing=1, bubbling=3)
Стандартные события DOM проходят фазы обработки событий (event.eventPhase):
Константа | Значение | Описание |
---|---|---|
Event.NONE | 0 | Ни одно событие не обрабатывается |
Event.CAPTURING_PHASE | 1 | Событие передаётся через объекты-предки целевого элемента (event.target). Этот процесс начинается с объекта Window, затем — Document, затем HTMLHtmlElement и т. д. через элементы до тех пор, пока не будет достигнут непоседственно родительский элемент. Обработчики событий, зарегистрированные для Capturing (при вызове EventTarget.addEventListener (EVENT, HANDLER, useCapture)), запускаются на этом этапе. |
Event.AT_TARGET | 2 | Событие достигло целевого элемента. В это время вызываются обработчики событий, зарегистрированные для этой фазы. Если Event.bubbles принимает значение false, обработка события завершается после завершения этой фазы. |
Event.BUBBLING_PHASE | 3 | Событие распространяется к предкам целевого элемента, в обратном порядке, начиная с его непосредственного родителя, и в конечном итоге достигает объекта Window. Этот процесс называется bubbling происходит только в том случае, если Event.bubbles принимает значение true. Обработчики событий, зарегистрированные для этой фазы, запускаются в это время. |
- Capturing phase — событие переходит к элементу
- Target phase — событие достигло целевого элемента
- Bubbling phase — событие «поднимается» от элемента
Частые вопросы
Откройте Панель управления — Настройки — Настройки продукта — Почтовые события; выберите событие.
На первой закладке, должны стоять галочки возле используемых на Вашем сайте кодов языка. На закладке «шаблоны» должна стоять галочка возле имени Вашего сайта, хотя бы у одного шаблона (обычно он там как раз один). Также, в настройках выбранного почтового шаблона (можно перейти прямо по ссылке со страницы «шаблоны», не забудьте только перед этим нажать «применить», если были сделаны какие-то настройки), должна стоять галочка «активен», и также должен быть выбран Ваш сайт. Также должны быть корректно заполнены поля «от кого» и «кому» (значения по-умолчанию #DEFAULT_EMAIL_FROM# и #EMAIL#, соответственно).
2. Если все эти настройки соответствуют истине, то в настройках модуля веб-формы отключите флаг «использовать упрощенный режим», перейдите в настройки соответсвующей формы, вкладка дополнительно, убедитесь, что флаг привязки к почтовому шаблону проставлен. Если и здесь все в порядке, то перейдите, пожалуйста, в Настройки-Инструменты-SQL-запрос и выполните такой запрос:
select * from b_event where event_name like ‘%form%’ order by date_insert desc |
Найдите событие заполнения формы, смотрите в поле SUCCESS_EXEC:
стоит Y — письмо из продукта ушло, дальнейшую его судьбу попросите отследить администратора хостинга
стоит N — зайдите в файл /bitrix/php_interface/dbconn.php и проверьте не определены ли у Вас константы
BX_CRONTAB и BX_CRONTAB_SUPPORT, если да — убрать их определение вообще из этого файла. Если после этого SUCCESS_EXEC также N, то необходимо перейти в папку /bitrix/managed_cache/ и попытаться удалить содержимое (обязательно через модуль управления структурой, а не через FTP), если получите ошибку — значит необходимо исправить проблему с доступом продукта к папкам, чтобы Вы могли удалить файлы и папки из кеша.
Стоит F — функция mail() по какой-то причине вернула False при отправке. Наиболее типичные проблемы:
1. Не настроена функция mail() на хостинге. Решается с хостером.
2. Почтовый сервер не поддерживает формат письма. Пробовать изменять настройки отправки, убирать поле ВСС, убирать галочку «Дублировать email адрес в заголовке», ставить «Конвертировать 8-битные заголовки». Не помогает — запросить логи у администратора почтового сервера, чтобы посмотреть, в чем конкретно ошибка при отправке.
Стоит 0 (ноль) — значит, что-то неверно в настройках из пп.1-2 — проверьте еще раз.
Общее требование : обязательно должно присутствовать свойство заказа типа LOCATION, которое используется как местоназначение доставки.
Создать свойство можно из списка свойств заказа:
Рабочий стол->Магазин->Настройки магазина->Свойства заказа->Список свойств
При создании свойства взвести флаг «Использовать как местоположение».
В случае отсутствия подобного свойства шаг выбора доставки будет всегда пропускаться.
Требования СПСР-Экспресс:
1. Работает на основе тарифного калькулятора службы. Необходима установка адреса магазина в настройках модуля. Ограничения обработчика: только Россия.
2. Заполнение индексов местоположений не требуется, т.к. тарифному калькулятору требуется корректно указанный город России. Примечание: если в адресе будет указано, например «Россия — Москва и Мо» или пунктом назначения будет «Россия — Москва и Мо», то стоимость калькулятор не рассчитает — города «Москва и Мо» не существует.
3. На сервере в обязательном порядке должна корректно работать функция strtoupper() (в том числе и с кириллицей), которая осуществляет перевод символов строки в верхний регистр. Это момент очень важен при определении корректности адреса магазина (должен быть в Москве, см. п.1). Чтобы проверить работоспособность функции strtoupper() в PHP-строке нужно выполнить следующий код:
echo strtoupper(‘мОсКвА’); |
Если результат выполнения кода не «МОСКВА», то функция strtoupper() работает некорректно.
В случае, если функция работает некорректно, то можно попробовать в файле /bitrix/php_interface/dbconn.php добавить следующие строки:
setlocale(LC_ALL, ‘ru_RU.CP1251’); |
setlocale(LC_NUMERIC,’C’); |
Если это не решает проблемы, то нужно обратиться к администратору хостинга.
Требования «Почта России»:
1. Доставка осуществляется только из Москвы, поэтому в адресе магазина, в настройках модуля интернет-магазина, должно быть указано «Москва» или «Moscow». Это не ограничение, конкретно обработчика нашего продукта, это ограничение тарифного калькулятора службы, об этом можно узнать на официальном сайте Почты России
2. Обязательно(!) заполнение индексов местоположений, т.к. тарифный калькулятор требует указания индекса местоположения. Альтернативным вариантом может быть создание свойства заказа типа «строка», у которого нужно взвести флаг «Использовать как почтовый индекс». В этом случае, покупателю в процессе оформления заказа будет предложено ввести индекс самостоятельно.
3. На сервере в обязательном порядке должна корректно работать функция strtoupper() (в том числе и с кириллицей), которая осуществляет перевод символов строки в верхний регистр.
Требования «EMS Почта России»:
1. Адрес магазина должен быть в городе, который входит в список тарифного калькулятора
2. Доставка только из России, в города, которые есть в списке тарифного калькулятора.
3. Заполнение индексов местоположений не требуется, т.к. тарифному калькулятору требуется корректно указанный город России.
4. На сервере в обязательном порядке должна корректно работать функция strtoupper() (в том числе и с кириллицей), которая осуществляет перевод символов строки в верхний регистр. Это момент очень важен при определении корректности адреса магазина и места доставки.
Требования «DHL»:
1. Доставка осуществляется только из США, поэтому в качестве адреса магазина должен быть указан город Соединенных Штатов Америки. Это ограничение тарифного калькулятора доставки
2. Обязательно(!) заполнение индексов местоположений, т.к. тарифный калькулятор требует указания индекса местоположения. Альтернативным вариантом может быть создание свойства заказа типа «строка», у которого нужно взвести флаг «Использовать как почтовый индекс». В этом случае, покупателю в процессе оформления заказа будет предложено ввести индекс самостоятельно.
Требования к настраиваемым службам доставки:
1. Должна быть создана хотя бы одна группа местоположений, в настройках службы должны быть выбраны те местоположения и группы местоположений, при выборе которых в процессе оформления заказа будет предложена эта доставка.
Создание групп местоположений:
Рабочий стол->Магазин->Настройки магазина->Местоположения->Группы местоположений
2. При желании можно выставить ограничения по сумме заказа и общему весу товаров в заказе. В случае, если доставка не появляется, значит, данные заказа не удовлетворяют настройкам службы — пункт назначения, вес или стоимость заказа.
2. Если перенос осуществлялся простым копированием файлов (FTP/SSH),мог не скопироваться файл /.access.
В данном файле хранятся права групп пользователей к сайту, если данного файла нет, то для всех пользователей устанавливается право «Запрещено».
Проблема решается одним из способов:
А. Вам надо зайти через файловый менеджер продукта в свойства корневой папки сайта и на вкладке «Доступ» установить для группы «Неавторизованные пользователи» право «Чтение».
Б. В корень сайта положить файл .access с содержимым:
Дело в том, что у tar есть несколько диалектов. Мы пакуем в формате GNU tar, как это делает по умолчанию tar в linux. WinRar понимает tar, но конкретно этот диалект поддерживает не полностью.
Решение:
Вам надо создать новый уровень доступа к Главному модулю (Файл/Папка):
«Настройки»-> «Пользователи»-> «Уровни доступа».
http://dev.1c-bitrix.ru/learning/course/lesson.php?COURSE_ID=6&ID=1223
В созданном уровне доступа выберите флажок «Загрузка файла на сервер (fm_upload_file)», сохраните.
Затем Вам надо данный уровень доступа установить на корневую папку сайта, для требуемой группы пользователей.
Это должно решить проблему.
1.»YML не принят: Фид не разобран до конца — ошибка парсера XML (Error parsing XML feed) (line: 81 column: 5): Unterminated entity declaration, ‘ContentType'»
Проблема в том, что по умолчанию в папке /upload не выполняются php скрипты.
Для решения проблемы вам следует перенести файл экспорта в другую папку, отличную от /upload, и в папке разрешить выполнение php скриптов в файле .htaccess при помощи директивы AddType
Можно прямо в папке /upload создать директории, переместить туда файл yandex.php, создать в этой директории файл .htaccess и переопределить в нём AddType:
2. «Notice : Undefined index: referer1 in /var/www/alexey/data/www/telecamera.ru/upload/yandex.php on line 1»
В файле .htaccess, папки в которой находится файл экспорта, вам следует отключить отображение замечаний(NOTICE).
Уровень вывода ошибок задаётся директивой php_value error_reporting.
Данную директиву можно определить также в настройках PHP.
Например уровень:
error_reporting = E_ALL & ~E_NOTICE
позволяет выводить все ошибки, за исключением замечаний.
Если используется компонент рассылки версии 1.0:
$SUBSCRIBE_TEMPLATE_RESULT это глобальная переменная, её значение определяется внутри компонента.
Поэтому в шаблоне рассылке достаточно просто вызвать компонент для определения значения $SUBSCRIBE_TEMPLATE_RESULT.
Если используется компонент рассылки версии 2.0:
$SUBSCRIBE_TEMPLATE_RESULT не является глобальной, поэтому просто вызвать компонент для определения значения этой переменной недостаточно(как это было с компонентом версии 1.0):
IncludeComponent( «bitrix:subscribe.news», «», Array( «SITE_ID» => «s1», «IBLOCK_TYPE» => «news», «ID» => «», «SORT_BY» => «ACTIVE_FROM», «SORT_ORDER» => «DESC» ) );?> |
Сам компонент возвращает количество элементов, которые попадают в следующий выпуск рассылки, соответственно переменной $SUBSCRIBE_TEMPLATE_RESULT следует присвоит значение, возвращаемое компонентом bitrix:subscribe.news:
IncludeComponent( «bitrix:subscribe.news», «», Array( «SITE_ID» => «s1», «IBLOCK_TYPE» => «news», «ID» => «», «SORT_BY» => «ACTIVE_FROM», «SORT_ORDER» => «DESC» ) );?> |
В этом случае $SUBSCRIBE_TEMPLATE_RESULT будет определена и выпуск будет сформирован по расписанию.
В данном режиме происходит обратный отсчёт страниц (последняя страница считается первой).
Данный механизм используют, если при добавлении элемента инфоблока, он всегда попадает наверх списка (отсортированы по дате добавления сообщения по убыванию). Таким образом, меняется лишь последняя страница. Все предыдущие можно надолго закешировать.
При данном типе постраничной навигации разбиение на страницы произойдёт, если остаток при делении количества сообщений на первой странице на число, указанное в настройках компонента, будет больше или равно двум.
Например, если всего 170 сообщений в форуме, и в настройках компонента указано число сообщении на странице равное 20, будет образовано 8 страниц, на первой — 30 сообщений, на остальных — 20. При данных настройках в случае достижении количества сообщений равным 180, будут образованы 9 страниц по 20 сообщений.
При обратной страничной навигации количество сообщений на странице либо равно числу, указанному в настройках компонента, либо больше его.
Тут важно знать 2 аспекта:
a. Кодировка дампа устанавливается в зависимости от содержимого файла /bitrix/php_interface/after_connect.php, например:
$DB->Query(«SET NAMES ‘utf8′»); ?> |
т.е дамп будет создаваться в кодировке «utf8».
b. Кодировку сервера баз данных можно увидеть в параметре «character_set_server» после выполнения SQL-запроса:
show variables where Variable_name = ‘character_set_server’; |
Ошибка происходит если данные кодировки (п.1 и п.2) различаются.
Обойти или устранить эту ошибку можно двумя способами:
1. В настройках сервера изменить кодировку в параметре «character_set_server» (b) на ту, в которой сделан дамп (a).
Важно: данную операцию делаете или Вы или администратор сервера в зависимости от прав, которыми Вы обладаете.
2. Можно открыть дамп в текстовом редакторе и в самое начало вставить строку:
SET NAMES `utf8`; |
Кодировка выбирается в зависимости от кодировки, в которой сделан дамп (a).
Важно: Данный способ работает только на небольшие дампы (которые успевают импортировать за один шаг)
1. В большинстве случаев данная ошибка наблюдается из-за того, что дистрибутив продукта (архив) был не до конца скачан с нашего сайта.
2. Также проблема может быть из-за большой разности времени, которое установлено, на веб-сервере и времени на сервере базы. Т.е. Пробная версии создалась для одной даты, а при сравнении с базой данных, дата уже совсем другая. Если это так, то время надо синхронизировать.
3. Возможно база данных, в которую выполняется установка продукта, не пуста и время действия продукта берётся со старой установки.
Ниже приведены рекомендации, при выполнении которых данная ошибка точно не появится:
1. Перед установкой продукта очистите корневую папку сайта от всех файлов (оставить надо только файлы, относящиеся к данной установке продукта).
2. Выполняйте установку только в пустую базу данных или создавайте её нашим мастером установки (можно также воспользоваться и phpMyAdmin).
3. Настоятельно рекомендуем пользоваться специальным скриптом bitrixsetup.php для скачивания и установки дистрибутива последней версии:
4. Во время установки никогда не нажимайте кнопку F5 в браузере, для навигации по мастеру установки существуют специальные кнопки на странице.
5. Также возможно, что в процессе распаковки дистрибутива произошёл сбой и не все файлы распаковались. Рекомендуем повторно распаковать продукт.
Скачать скрипт можно здесь:
Инструкция по установке продукта:
Учебный курс по установке продукта:
Например, группе пользователей дано право «Изменение» для определённого инфоблока. Компоненты для работы с инфоблоками добавляют кнопки только на вкладку «Редактирование», поэтому вкладка «Просмотр» не доступна пользователям с данными правами.
Если вам необходимо вывести панель в обязательном порядке, воспользуйтесь одним из следующих вариантов решения:
1. Дать группе пользователей право на управление кешем страницы (данная возможность появится на вкладке «Просмотр»).
Для этого создайте новый уровень доступа для Главного модуля с привязкой «Модуль», и доступной операцией «Управление кешем (cache_control)» (подробнее об уровнях доступа в учебном курсе «Администрирование системы»:
В настройках группы пользователей, для которой требуется вывод панели, в качестве доступа к Главному модулю укажите созданный уровень.
2. Выводить панель программно для определённой группы пользователей.
Для этого в шаблон сайта вставьте проверку:
$arGroups = $USER->GetUserGroupArray(); if (in_array(, $arGroups )) $APPLICATION->ShowPanel = true; ?> |
где номер_группы — ID группы, для которой требуется вывод панели.
Фактически это возможность разработчикам задать правила кеширования ресурсоемких частей страниц. Результаты кеширования сохраняются в виде файлов в каталоге /bitrix/cache/. Если время кеширования не истекло, то вместо ресурсоемкого кода будет подключён предварительно созданный файл кеша.
Более подробней на странице:
Кеширование называется неуправляемым, поскольку кеш не перестраивается автоматически после модификации исходных данных, а действует указанное время после создания. Часто такая схема является оптимальной.
Мы встречались с ситуацией, когда при создании файлов кэша им присваиваются такие права, которые являются недостаточными для последующего изменения или удаления этих файлов процессом веб-сервера. Таким образом, создаваемым файлам и папкам кеша должны присваиваться такие права, которые бы позволяли затем изменить удалить удалить их процессу веб-сервера.
При назначении прав на файлы и папки используются значения констант
BX_FILE_PERMISSIONS и BX_DIR_PERMISSIONS из /bitrix/php_interface/dbconn.php, но часто срабатывает маска прав на сервере и чтобы избежать этого необходимо прописать в этом же скрипте:
umask(000); @umask(~BX_DIR_PERMISSIONS); |
Есть ли подобные строки у Вас в файле /bitrix/php_interface/dbconn.php? Если нет — добавьте их, пожалуйста.
Для экономии места на диске Вы можете очистить папки /bitrix/managed_cache/ /bitrix/cache/.
Возможно в папках /bitrix/cache/ и /bitrix/managed_cache/ где из-за некорректно выставленных прав может приходить накапливание данных кеша.
Дополнительную информацию про права Вы найдёте в нашем FAQ:
Также Вы можете почистить файлы кеша из административного раздела на странице
«Рабочий стол->Настройки->Настройки продукта->Автокеширование»
Перейдя во вкладку «Очистка файлов кеша» и очистить «все».
Тем самым Вы можете освободить дисковое пространство от файлов кэша.
1. Создать группу пользователей.
а) В настройках доступа модуля «Управление структурой» установить «Редактирование файлов и папок» (новое название уровня доступа с 8.5.0).
б) Для этой группы пользователей установить право «Чтение» на папку /bitrix/admin/ (чтобы отображались административные страницы)
в) Если пользователь создан для редактирования инфоблоков, то в настройках доступа инфоблока надо ему дать право «Запись», при доступе «Чтение» инфоблок просто не будет отображаться.
2. Добавить во вновь созданную группу пользователя или пользователей.
Это вставка в код страницы сайта определенного зашифрованного JavaScript-кода, при выполнении которого формируется так называемый iframe (HTML-элемент, позволяющий включить при отображении содержимое одной страницы в другую). Вставленный iframe указывает, как правило, на зараженную страницу, которая уже содержит более «тяжелый» код, использующий различные уязвимости браузеров (в основном Internet Explorer’а) для загрузки и запуска исполняемых файлов вирусов.
Механизм заражения
Механизм заражения сайтов в подавляющем числе случаев одинаков: вирус попадает на компьютер, с которого выполнялся вход на данный сайт по протоколу FTP, после чего получает реквизиты доступа к адресам, для которых в программе FTP-клиенте была выбрана опция «запомнить логин/пароль». Получив реквизиты доступа, вирус отсылает их на компьютеры злоумышленников, где уже и расположены программы-роботы, выполняющие «грязную» работу. Эти роботы выполняют подключение к FTP-адресам с полученными реквизитами, затем сканируют каталоги сайта в поисках файлов с определенными именами: чаще всего это корневые файлы — те, к которым в первую очередь выполняется обращение при входе на сайт. Обнаружив такой файл, робот скачивает его, добавляет в конец скачанного файла вредоносный код, и закачивает этот файл обратно на FTP-сервер, заменяя оригинал.
С точки зрения сервера это выглядит как обыкновенная активность пользователя: выполняется подключение авторизованного пользователя, скачивание и закачивание файлов — фактически именно то, что выполняется при обыкновенном обновлении сайта разработчиком по FTP.
Устранение заражения
Первое, что необходимо сделать при обнаружении подобного заражения — это не дать вирусу повторно заразить сайт. Для этого достаточно сменить пароль доступа на FTP через панель управления, а также проверить все компьютеры, с которых выполнялось подключение к сайту по FTP на вирусы, используя антивирусы со свежими базами обновлений.
Также, Вы можете запросить у администратора хостинга все возможные логи (логи ftp, логи веб-сервера, ssh логи). Полученные логи от администратора необходимо проанализировать на предмет времени модификации файлов и способа доступа к ним, а также IP-адресов, с которых производилось изменение, что позволить сузить круз проблемных ПК, а также определить способ доступа к файлам и их заражение.
Так как код сайта, по сути, представляет собой обыкновенные текстовые файлы, для удаления вредоносного кода достаточно открыть зараженный файл, найти необходимый участок кода, удалить его и сохранить файл. В особо сложных ситуациях может случиться так, что над зараженным сайтом «поработали» несколько различных вирусов — файлы сайта будут содержать несколько вставок различного вредоносного кода. Реже встречаются случаи, когда содержимое сайта может быть повреждено достаточно сильно, в таком случае целесообразнее восстановить данные из резервной копии, чем заниматься лечением каждого файла вручную.
Предотвращение заражения
Для того, чтобы не повторять чужих ошибок и уберечься от повреждения сайта, достаточно следовать простым рекомендациям:
— не использовать возможности FTP-клиентов по сохранению паролей;
— периодически выполнять смену паролей доступа к FTP;
— при необходимости, ограничить адреса компьютеров, с которых разрешено подключаться по FTP;
— использовать для доступа по FTP только «надежные» компьютеры — те, на которых установлены антивирусы с актуальными базами обновлений.
Этот URL используется при формировании страницы результатов поиска — соответственно, если URL(проставленный в настройках инфоблока) указывает на несуществующую страницу, то по ссылке пользователь попадёт не на страницу детального просмотра найденного элемента, а на 404-ю.
Также похожая ситуация возникает, если компонент работает в режиме ЧПУ, а URL не в ЧПУ — в этом случае следует указать URL по правилами ЧПУ.
Проблема может возникать и ссылками на страницы форума.
В этом случае следует проверить корректность шаблона пути к сообщению форума.
Настройки инфоблока:
Контент -> Информ. блоки -> Типы информ. блоков -> ->
Настройки форума:
«Рабочий стол»-> «Сервисы»-> «Форумы»-> «Список форумов»->
Настройки блога:
«Настройки»-> «Настройки продукта»-> «Настройки модулей»-> «Блоги».
»>=DATE_ACTIVE_FROM’= |
т.е. выбираются элементы, поле DATE_ACTIVE_FROM которых находится между предыдущим и текущим запуском рассылки.
Возможна следующая ситуация:
Пусть текущий запуск — >DD<.>MM<.>YYYY< 12:00:00
предыдущий — >DD-1<.>MM<.>YYYY< 12:00:00
Возможные варианты решения:
1. Создавая элемент, указывайте дату его активности следующим днем
2. Создавая элемент, указывайте дату его активности сегодняшним днем, но с точным временем, чтобы оно не было равно 00:00:00
3. Измените шаблон генерации выпуска так, чтобы проверялось не поле DATE_ACTIVE_FROM, а DATE_CREATE — дата создания элемента.
4. Устанавливайте генерацию выпусков на время, незадолго перед полуночью (например — 23:30), чтобы все созданные за день элементы (с датой активности с 00:00:00, но созданные в течение дня) попали в выпуск.
5. В настройках инфоблока, используемого в рассылке, поле Начало активности должно иметь значение по умолчанию Текущие дата и время.
Для решения проблемы и получения возможности загрузки и установки обновлений, Вам необходимо зарегистрировать в системе хотя бы 1 сайт или активировать существующий из раздела:
Рабочий стол/Настройки/Настройки продукта/Сайты/Список сайтов
Причины могут быть следующие:
— не доступны функции работы с сокетами, в частности, fsockopen();
— на сервере запрещены исходящие соединения к 80 порту;
— проблема в работе сети.
Вам необходимо обратиться к администратору хостинга, предоставив описание ошибки.
ShowHeadStrings();?> ShowHeadScripts();?> |
либо, начиная с 7й версии