Как сделать чтобы окно не пропадало

Обновлено: 25.04.2024

Сегодня рассмотрим достаточно редкую проблему, которую наблюдают некоторые пользователи операционных систем Windows XP и 7. Заключается проблема в регулярном сворачивании открытых окон или выкидывании из приложений на рабочий стол. Проблема может возникнуть по разным причинам, а потому и способов ее решения существует несколько. Основные из них мы рассмотрим в рамках данной статьи.

Корень проблемы и ее решение

Так что же является корнем проблемы, превращающей рутинную работу в системе Windows XP/Windows Seven в сплошную каторгу? Как бы банально это ни звучало, но виной всему – один из процессов, выполняемых имеющейся в наличии ОС. Предлагаем рассмотреть несколько вариантов того, каким образом можно решить проблему с этими процессами.

1 Вариант

Необходимо зайти в «Диспетчер Задач» (Ctrl+Alt+Del) и перейти во вкладку «Процессы». Находясь в данной вкладке, ищем процесс под названием ouc.exe. Таких процессов может быть и несколько. В таком случае нужно «убить» все отображаемые в списке процессы. Далее проверяем наличие проблемы, запустив процесс и подождав 10-15 минут. При этом необходимо учесть, что закрывать вышеобозначенный процесс придется при каждом входе в систему.

2 Вариант

Это практически идентичный по своему техническому исполнению вариант, однако на этот раз необходимо закрыть команду TWCU.exe. Проделываем те же самые процедуры и после закрытия процессов, также как и в 1 Варианте запускаем приложения. После этого ждем до 15 минут и смотрим на результат.

3 Вариант

Часто случается так, что завершение процессов ouc.exe и TWCU.exe не приводит к должному результату и окна все равно продолжают настойчиво сворачиваться. Также у некоторых эти процессы могут и вовсе не отображаться.

Еще один процесс, который влияет на «сворачивание» окон, будучи в фоновом режиме – «Диспетчер Realtek HD». Его можно отключить, зайдя в «Диспетчер задач», либо выполнив msconfig, далее перейдя в раздел автозагрузка, в котором нужно убрать галочку с «Диспетчера Realtek HD».

При обнаружении процесса в автозагрузке и после снятия соответствующего флажка потребуется перезагрузка компьютера, для того чтобы изменения вступили в силу.

И еще небольшой совет – чтобы не заниматься отключением подобных процессов вручную каждый раз при входе в систему, как вариант, можно воспользоваться сторонним софтом – так, если речь идет о Windows 7, устанавливаем Windows 7 Manager и в настройках процессов во вкладке автозагрузки отключаем вышеуказанные процессы, после чего производим перезагрузку системы.

То есть скажем два окна, одно поверх другого, если мышью кликнуть по нижнему окну то верхнее автоматически скроется, как сделать так что-бы окна были устойчивы и не скрывались при кликах. Точно знаю что где-то в настройках винды 7 есть такой пункт. Кто знает?

Пример: Вот допустим если в будучи в браузере открыть окошко калькулятора, который будет отображаться на фоне браузера и кликнуть по браузеру, то окошко калькулятора исчезнет за окном браузера, а мне надо настроить так что-бы ничего не скрывалось за другими окнами.

И как оно может быть устойчиво? У тебя 2 окна будут одновременно отображаться на 1 месте? Не говори ерунду

Вот допустим если в будучи в браузере открыть окошко калькулятора, который будет отображаться на фоне браузера и кликнуть по браузеру, то окошко калькулятора исчезнет за окном браузера, а мне надо настроить так что-бы ничего не скрывалось за другими окнами.


ерунда?

Иван Иванов Мудрец (17734) Я говорил про его вопрос, а не про новые функции виндовс 10. Он сказал, что ему надо сделать так, чтобы одно окно было ПОВЕРХ другого, при том, что АКТИВНО нижнее окно. Я сказал ему, что такое, мягко говоря, трудновато будет сделать, просто потому, что второе окно перекроет активное. Можно, конечно, поставить свойство "отображать поверх остальных", но тогда толку от этого будет мало, потому, что опять же, ВТОРОЕ ОКНО ПЕРЕКРОЕТ ПЕРВОЕ.

Правой кнопкой на Панели задач - Окна каскадом, или Окна рядом. Проще не пользоваться полноэкранным режимом и самому устанавливать размеры окон.

Фантастика! Это как в анекдоте - "а давай теперь и я сверху, и ты сверху". Все окна на переднем плане, ни одного на заднем! Нет, ну, конечно, на мониторе дюймов в 40 имеет право на жизнь ))

как вы понять не можете: окно не устойчиво, если поверх большего окна наложено меньшее окно, то оно, меньшее, тут же прячется, и я не могу его поймать, пока все окна не сверну. у меня та же проблема.. раньше такого не было.

Вёрстка таких окон сначала кажется простой задачей. Модальные окна можно сделать даже без помощи JS только лишь с помощью CSS, но на практике они оказываются неудобными, и из-за маленьких недочетов модальные окна раздражают посетителей сайта.

В итоге было задумано сделать собственное простое решение.


Вообще говоря, есть несколько готовых скриптов, JavaScript библиотек, реализующих функционал модальных окон, например:

  • Arctic Modal,
  • jquery-modal,
  • iziModal,
  • Micromodal.js,
  • tingle.js,
  • Bootstrap Modal (из библиотеки Bootstrap) и др.

(в статье не рассматриваем решения на базе Frontend-фреймворков)

Несколькими из них я пользовался сам, но почти у всех находил какие-то недостатки. Некоторые из них требуют подключения библиотеки jQuery, которая есть не на всех проектах. Для разработки своего решения, нужно сначала определиться с требованиями.

Что мы ждём от модальных окон? Отвечая на этот вопрос, я основывался на докладе «Знакомьтесь, модальное окно» Анны Селезнёвой, а так-же на относительно старой статье NikoX «arcticModal — jQuery-плагин для модальных окон».

Итак, чтобы нам хотелось видеть?

Дисклеймер: Прежде чем мы рассмотрим подробности, сразу дам ссылку на готовый код получившейся библиотеки (HystModal) на GitHub, а также ссылку на демо+документацию.

Начнём с разметки.

1. Разметка HTML и CSS

1.1. Каркас модальных окон

Как открыть окно быстро? Самое простое решение: разместить всю разметку модального окна сразу в HTML странице. Затем скрывать/показывать это окно при помощи переключения классов CSS.

Набросаем такую разметку HTML (я назвал этот скрипт «hystmodal»):

Сделаем так, чтобы .hystmodal растягивался на всё окно браузера и закрывал собой содержимое страницы. Чтобы этого добиться, установим фиксированное позиционирование в CSS и приравняем свойства top, bottom, left и right к нулю.

В этом коде сделаны ещё две вещи:

  1. Так как мы хотим центрировать окно внутри страницы, превращаем .hystmodal в flex-контейнер с выравниваем его потомков по центру по вертикали и горизонтали.
  2. Окно может быть больше высоты экрана браузера, поэтому мы устанавливаем overflow-y: auto , чтобы при переполнении возникала полоса прокрутки. Также, для сенсорных экранов (в основном для Safari) нам стоит установить свойство -webkit-overflow-scrolling: touch , чтобы сенсорная прокрутка работала именно на этом блоке а не на странице.

Теперь установим стили для самого окна.

Кажется возникли сложности.

Проблема №1. Если высота окна больше высоты окна браузера, то контент окна будет обрезан сверху.


Это возникает из-за свойства justify-content: center . Оно позволяет нам удобно выровнять потомков по основной оси (по вертикали), но если потомок становится больше родителя то часть его становится недоступной даже при прокручиваемом контейнере. Подробнее можно посмотреть на stackoverflow. Решение – установить justify-content: flex-start , а потомку установить margin:auto . Это выровняет его по центру.

Проблема №2. В ie-11 если высота окна больше высоты окна браузера, то фон окна обрезается.

Решение: мы можем установить flex-shrink:0 потомку – тогда обрезки не происходит.

Проблема №3. В браузерах кроме Chrome нет отступа от нижней границы окна (т.е. padding-bottom не сработал).

Сложно сказать баг это браузеров или наоборот соответствует спецификации, но решения два:

  • установить псевдоэлемент ::after после потомка и дать ему высоту вместо padding
  • обернуть элемент в дополнительный блок и дать отступы уже ему.

Воспользуемся вторым методом. Добавим обертку .hystmodal__wrap . Так мы заодно обойдём и проблему №1, а вместо padding у родителя установим margin-top и margin-top у самого .hystmodal__window .

Наш итоговый html:

В код также добавлены некоторые aria и role атрибуты для обеспечения доступности.

Обновленный код CSS для обертки и окна.

1.2 Скрываем окно

Сейчас наше окно всегда видно. Когда говорят о скрытии элементов, первое что приходит на ум это переключать свойство display со значения none до нашего значения flex.

Но этот подход нас не устроит, ведь свойство display не анимируется. Все переходы дочерних элементов, указанные в свойстве transition, работать не будут.

Нам поможет другое свойство visibility:hidden . Оно скроет окно визуально, хотя и зарезервирует под него место. А так как все будущие окна на странице имеют фиксированное
позиционирование – они будут полностью скрыты и не повлияют на остальную страницу. Кроме того, на элементы с visibility:hidden нельзя установить фокус с клавиатуры, а от скрин-ридеров мы уже скрыли окна с помощью атрибута aria-hidden="true" .

Добавим также классы для открытого окна:

1.3 Оформление подложки

В лучшем случае, нам нужен отдельный html-элемент в качестве оверлея. Можно использовать и имеющийся элемент модального окна .hystmodal в качестве оверлея, но тогда анимация на этом элементе (например переход opacity) будет затрагивать и внутренние элементы. В итоге, не получится анимировать разные свойства для окна и оверлея отдельно.

Просто разместим элемент .hystmodal__shadow прямо перед закрывающим . В будущем, сделаем так, чтобы этот элемент создавался автоматически из js при инициализации библиотеки.

1.4 Отключение прокрутки страницы

Когда модальное окна открывается, мы хотим, чтобы страница под ним не прокручивалась.
Самый простой способ этого добиться — повесить overflow:hidden для body или html, когда окно открывается. Однако с этим есть проблема:

Проблема №4. В браузере Safari на iOS страница будет прокручиваться, даже если на тег html или body повешен overflow:hidden .
Решается двумя способами, либо блокированием событий прокрутки (touchmove, touchend или touchsart) из js вида:

Однако при этом блокируется и прокрутка самого модального окна, а также все прокручиваемые блоки внутри окна, если они будут. Требуется дополнительные проверки селекторов из js, что приводит к усложнению кода, поэтому рассмотрим другой вариант.

ps: можно конечно применить библиотеку scroll-lock, в которую заложено это решение, но в статье было решено воспользоваться другим вариантом.

Другое решение – основано частично на CSS. Пусть когда окно открывается, на элемент будет добавляться класс .hystmodal__opened :

Благодаря position:fixed , окно не будет прокручиваться даже в safari, однако здесь тоже не всё гладко:

Проблема №5. При открытии/закрытии окна страница прокручивается в начало.
Действительно, это происходит из-за изменения свойства position, текущая прокрутка окна сбрасывается.

Для решения, нам нужно написать следующий JS (упрощенно):

При открытии:

При закрытии:

Отлично, приступим к JavaScript коду.

2. Код JavaScript

2.2 Каркас библиотеки

Нам нужна совместимость со старыми браузерами включая IE11 поэтому нам нужно выбрать из 2 вариантов кодинга:

  • Разрабатывать на старом стандарте ES5, и использовать только те фичи, которые поддерживают все браузеры.
  • Применить современный синтаксис ES6, но подключить транспайлер Babel, который автоматически преобразует код для всех браузеров и встроит необходимые полифилы.
    Было принято решение использовать второй вариант, с прицелом на будущее.
    Приступим.

Основа нашей библиотеки единственный класс HystModal . Ниже я приведу скелет кода с комментариями, а потом добавим остальной функционал.

Итак, мы описали класс HystModal . Чтобы всё работало, нужно всего лишь подключить наш скрипт и создать экземпляр класса:

Проблема №6: если в браузере есть фиксированный скроллбар (который влияет на ширину страницы), то при открытии/закрытии окна происходит сдвиг контента, когда полоса прокрутки то появляется то пропадает.

Действительно – скроллбар пропадает и контент страницы перераспределяется. Чтобы решить эту проблему, можно добавить отступ справа к тегу html, равный ширине скроллбара когда он пропадает.

Однако ширина скроллбара может быть разной в разных браузерах и операционных системах. Кроме того, скроллбара может не быть на коротких страницах или он может быть плавающим (например, в Chrome на Android). Поэтому ширину нужно вычислять динамически из скрипта.

Дополним метод _bodyScrollControl()

Почему код метода close() упрощён? Дело в том, что просто убирая классы CSS у элементов, мы не можем анимировать закрытие окна.

Проблема №7. При закрытии окна, свойство visibility:hidden применяется сразу и не даёт возможности анимировать закрытие окна.

Причина этого известна: свойство visibility:hidden не анимируется. Конечно, можно обойтись без анимации, но, если она нужна, сделаем следующее.

  • Создадим дополнительный CSS-класс .hystmodal—moved почти такой-же как и .hystmodal--active
  • Затем при закрытии сначала добавим этот класс к окну и повесим обработчик события «transitionend» на модальном окне. Затем удалим класс `.hystmodal—active , таким образом вызывая css-переход. Как только переход завершится, сработает обработчик события «transitionend», в котором сделаем всё остальное и удалим сам обработчик события.

Ниже: новая версия методов закрытия окна:

Вы заметили, что мы создали ещё один метод _closeAfterTransition() и перенесли основную логику закрытия туда. Это нужно, чтобы удалить обработчик события transitionend после закрытия окна, ведь в метод removeEventListener необходимо передать именно ту функцию, которую мы привязывали.

Кроме того, если анимация не будет нужна, можно просто вызвать this._closeAfterTransition() не вешая его на событие.

Как мы помним, внутри addEventListener, this будет указывать на селектор где происходит событие, а не на наш экземпляр класса, поэтому в конструкторе нужно добавить ещё одну строчку для жёсткой привязки метода к this.

2.2 Закрытие окна по клику на оверлей

Нам нужно обработать ещё одно событие – закрытие окна по клику на элемент подложки .hystmodal__wrap . Мы можем повесить обработчик клика на документ для делегирования события как при открытии и проверить что событие произошло на .hystmodal__wrap примерно так:

Это будет работать, но есть один малозаметный недостаток.

Проблема №8. Если кнопку мыши нажать внутри окна, а отпустить за его пределами (над подложкой), окно закрывается.

Представьте, что в окне форма. Вы выделяете текст в поле ввода и случайно двигаете мышь чуть дальше, курсор заходит на подложку и вдруг окно закрывается, всё вдруг пропадает из виду. Не хотелось бы, чтобы так было.

Окно закрывается потому что по спецификации, если нажатие и отпускание мыши были на разных элементах, то событие click сработает на самом ближайшем общем для них элементе, а у нас это как раз .hystmodal__wrap .

Мы могли бы решить это изменением html, добавляя ещё один div сразу после .hystmodal__window и размещая его визуально под окном. Но нам бы не хотелось добавлять лишний пустой div ещё сильнее усложняя разметку.

Мы можем разбить наш addEventListener на два отдельных обработчика: для событий mousedown и mouseup и будем проверять чтобы оба события происходили именно на .hystmodal__wrap . Добавим новые обработчики событий в наш метод eventsFeeler()

2.3 Управление фокусом

У нас заготовлено два метода для управления фокусом: focusContol() для переноса фокуса внутрь окна и обратно при его закрытии, а также focusCatcher(event) для блокирования ухода фокуса из окна.

Решения для фокуса были реализованы аналогично js-библиотеке «Micromodal» (Indrashish Ghosh). А именно:

1. В служебный массив сохраним все css селекторы на которых может быть установлен фокус (свойство помещаем в init()):

2. В методе focusContol() находим первый такой селектор в окне и устанавливаем на него фокус, если окно открывается. Если же окно закрывается – то переводим фокус на this.starter :

3. В методе focusCatcher() находим в окне и превращаем в массив коллекцию всех элементов на которых может быть фокус. И проверяем, если фокус должен был выйти на пределы окна, то вместо этого устанавливаем фокус снова на первый или последний элемент (ведь фокус можно переключать как по Tab так и по Shift+Tab в обратную сторону).

Результирующий код метода focusCatcher:

По сути мы реализовали все необходимое для успешного создания модальных окон, осталось ещё несколько дел:

Проблема №9. В IE11 не работают методы Element.closest() и Object.assign() .

Для поддержки Element.closest, воспользуемся полифилами для closest и matches от MDN.

Можно их вставить просто так, но так как у нас проект всё равно собирается webpack, то удобно воспользоваться пакетом element-closest-polyfill который просто вставляет этот код.

Для поддержки Object.assign , можно воспользоваться уже babel-плагином @babel/plugin-transform-object-assign

3. Заключение и ссылки

Повторяя начало статьи, всё изложенное выше, я оформил в маленькую библиотеку hystModal под MIT-лицензией. Вышло 3 кБ кода при загрузке с gzip. Ещё написал для неё подробную документацию на русском и английском языке.

Что вошло ещё в библиотеку hystModal, чего не было в статье:

  • Настройки (вкл/выкл управление фокусом, варианты закрытия, ожидание анимации закрытия)
  • Коллбеки (функции вызывающиеся перед открытием окна и после его закрытия (в них передаётся объект модального окна))
  • Добавлен запрет на какие-либо действия пока анимация закрытия окна не завершится, а также ожидание анимации закрытия текущего окна перед открытием нового (если окно открывается из другого окна).
  • Оформление кнопки-крестика закрытия в CSS
  • Минификация CSS и JS плагинами Webpack.

Если вам будет интересна эта библиотека, буду рад звёздочке в GitHub, или напишите в Issues о найденных багах. (Особенно большие проблемы, наверное, в грамматике английской версии документации, так как мои знания языка пока на начальном уровне. Связаться со мной также можно в Instagram


Если вы работаете под Windows 10, то могли заметить всплывающее окно, которое появляется на экране, а потом мгновенно исчезает. Такое может случаться раз в день, несколько раз в день или даже каждый час (вообще-то оно и должно появляться каждый час, может, вы не всегда его замечаете). Если вы видели это окно, то вы не одиноки: такая же проблема наблюдается у многих других пользователей, о чём говорят десять страниц обсуждения на официальном форуме Microsoft Answer.

Окно быстро исчезает, так что сложно понять, из-за чего оно возникло и какой процесс его вызвал. Непонятно, почему оно появляется и есть ли причины для беспокойства.

Пользователи говорят, что при появлении окна их выбрасывает из полноэкранного режима, если тот был запущен в какой-то программе. У некоторых окно появляется каждый час, что мешает играм — реально игровой процесс превращается в настоящий кошмар из-за такой мелкой неурядицы.

Отдельные пользователи поделились опытом, когда у кого началась проблема. Один сказал, что окно появилось, как только он переключился на «быстрый цикл» обновлений (fast ring). Другой пользователь Office 365 сказал, что окно возникло после последнего обновления примерно 11 апреля. Говорят, что если переключиться обратно на «медленный цикл» (slow ring), то загадочное окно исчезает само собой.

Один из пострадавших заснял окно в скринкасте.


Суть в том, что в планировщике заданий Microsoft Office запланировано два задания, которые выполняются с определённой периодичностью:

OfficeBackgroundTaskHandlerLogon выполняется при авторизации пользователя
и
OfficeBackgroundTaskHandlerRegistration, который выполняется каждый час.

Собственно, то странное всплывающее окно относится именно ко второму процессу OfficeBackgroundTaskHandlerRegistration, и вы можете наблюдать его даже каждый час.

Оба процесса установлены для запуска в группе «Пользователи» (Users). Наиболее простой способ спрятать с глаз долой назойливое окно — установить OfficeBackgroundTaskHandlerRegistration для запуска под аккаунтом System, и тогда вы больше не увидите всплывающих окон каждый час. Для этого нужно вызвать планировщик задач (Task Scheduler), перейти в Task Scheduler Library > Microsoft > Office, нажать правой кнопкой на OfficeBackgroundTaskHandlerRegistration и выбрать «Свойства», там выбрать пункт «Изменить пользователя или группу» и указать system.

Пользователь, который посоветовал такой способ сокрытия OfficeBackgroundTaskHandlerRegistration, признаёт, что это не лучший вариант с точки зрения безопасности, но по крайней мере он временно решает проблему — убирает окно с экрана, а в будущем можно рассчитывать, что разработчики Microsoft выпустят патч, который исправит этот глюк.

Если изучить журнал, то можно увидеть, что всплывающее окно возникает из-за программы officebackgroundtaskhandler.exe, которая находится по адресу C:\Program Files (x86)\Microsoft Office\root\Office16\officebackgroundtaskhandler.exe. Вы можете проверить это — запустить файл вручную в любой момент и убедиться, что фоновый обработчик задач Microsoft Office действительно на мгновение выводит окно на экран.

Очевидно, что у этого процесса не должно быть всплывающих окон, и Microsoft могла бы найти много способов, как спрятать его, но этого сделано не было по какой-то причине.

Так или иначе, но вместо перевода под системный аккаунт этот процесс можно вовсе отключить. Делается это по схожему же сценарию. Нужно вызвать планировщик задач (Task Scheduler), перейти в Task Scheduler Library > Microsoft > Office, нажать правой кнопкой на OfficeBackgroundTaskHandlerRegistration и отключить процесс оттуда.


Неясно, что делает этот конкретный процесс. Исходя из его названия, это какой-то служебный процесс для обработки задач. В любом случае, если вы решите отключить, то желательно наблюдать за поведением Office. Мало ли, вдруг в нём что-нибудь сломается.

Как создать модальное окно на чистом CSS

Модальные (всплывающие) окна – это очень популярный элемент интерфейса современных сайтов. Оно может использоваться для вывода различного контента веб-страниц такого, например, как формы (обратной связи, регистрации, авторизации), блоки рекламной информации, изображения, уведомления и др.

В большинстве случаев модальное окно создают на JavaScript. Но его можно создать не только с помощью JavaScript, но и посредством только HTML5 и CSS3.

Демо модального окна

Демонстрацию всплывающего окна, работающего только на HTML5 и CSS3, вы можете посмотреть здесь:

HTML и CSS код модального окна

HTML разметка модального окна:

Ссылка, с помощью которой осуществляется открытие модального окна:

CSS модального окна:

Модальное окно на чистом CSS

Если вам необходимо убрать скролл страницы после отображения модального окна, то к элементу body нужно добавить CSS-свойство overflow со значением hidden . А после скрытия модального окна данное свойство убрать у элемента body . Данное действие можно осуществить только с помощью JavaScript:

Комментарии:

Здравствуйте. А как сделать, чтобы нижний край модального окна не «уезжал» за границы видимой области в случае, если много контента?

Добрый день, а как можно настроить чтоб модальное окно появлялась автоматом, например у меня есть ajax запрос там к примеру данные всегда выше 600, если будет 500, то сработает модальное окно, можно так настроить?

Доброго времени суток
Я дублирую html блок с разным описанием, но отображается содержание только первого блока. Можете, пожалуйста, подсказать как решить эту проблему?
Заранее спасибо

Привет!
Тут нужно просто установить разным модальным окнам разные id:
После этого указать какая ссылка какое модальное окно должна открывать:
Песочница: открыть пример

Вам необходимо при нажатии на ссылку отменить стандартное действие браузера, т.е. вызвать метод preventDefault:

В этом случае вызывать окно следует с помощью JavaScript, либо убирать preventDefault и прописывать полный URL (это у вас из-за того, что в HTML коде имеется атрибут base).

Здесь тогда нужно прописывать полный путь к странице, а не [[++site_url]].
Второй вариант — это сделать через JavaScript, как предлагал выше (открыть пример).
Для этого в CSS вставляем следующее правило:
В JavaScript добавляем класс «open» при нажатии на ссылку и удаляем его при нажатии на кнопку «Закрыть»:
А как атрибут base влияет на SEO? Не встречал информации на эту тему.

Понял, вы хотите добавить к формам какой-то опозновательный признак. Тогда можно так:
Теперь у вас в каждой форме будет находится скрытое поле с name=«type» и значением равное name формы:

Кнопки submit у вас в формах уже есть. Вам нужно просто к каждой из них добавить атрибут name со значением, например, равным значению этого атрибута у формы:
После этого в вызовах сниппетах FormIt для обработки форм добавить параметр submitVar с соответствующим значением:

начал проверять на своей почте вроде всё работает спасибо огромное. если будешь проверять формы то в имени пиши проверка чтоб не подумал на настоящий заказ.

формы неработали когда я просто добавил &submitVar=`dopolnitform` а когда добавил название dopolnitform в скрытое поле то заработало как прежде с отправлением всех форм
убераю это скрытое поле и форма опять не работает. Может у submit должно быть одинаковое имя с &submitVar=`dopolnitform`

поставил код сейчас и в остальных &submitVar перестал работать. наверное еще снопке button поле name добавлять.

Сложно что-то посоветовать, т.к. не вижу полной картины. Для начала я бы проверил страницу (разметку) через валидатор w3c может какие-то теги не закрыты или что-то другое. Да, и CSS бы проверил через валидатор. А потом бы уже двигался дальше. Т.к., по сути, ничего не поменялось, изменения коснулись только открытия модального окна, какой-то взаимосвязи с формой тут не вижу.

мне нужно без обработчика просто чтоб name zvon при нажатию на кнопку ей присваивалась name zvon, чтоб кнопки в формах отличались друг от друга. а то при нажатии на одну кнопку срабатывают целые три формы на странице а хочется чтоб форма работала отдельно от остальных.
Если знаете как форму сделать независимой от остальных другим способом то я соглашусь на другой способ. Просто я какой знал способ отличия такой и использовал.

Можно просто кнопку с type="submit" поместить в форму (

.
), в этом случае будет отправляться только эта форма.

вот кнопка, в ней есть type=«submit» и не работает. в остальных формах без джава скрипта работает &submitVar=`content` на двух формах. а с джава скриптом перестал работать &submitVar, у меня формы на Formit может поэтому не работает type=«submit»

все работает спасибо огромное, только в формах на сайте перестала работать функция в форме &submitVar=`pred` она помогала отличать формы друг от друга, а сейчас при нажатии на одну кнопку в форме отправляются все формы со страницы. Оно добавляло в скрытое поле найм `pred`вот в это поле

Доброго дня.
Спасибо за текст. Вижу много времени прошло, но рискну задать вопрос.

1) Почему если поместить внутри ссылки картинку, то окно не появляется, только страница тускнеет?
2) не закрывается окно по клику на X, ( я пользую вариант из комментария где много окон)

Добрый день, Александр!
Я дублирую html блок под каждую новость, чтобы на главной любая аннотация переходила в полную (по Вашему примеру модального окна), но каждая из них лишь отображает содержание первого блока!
Пожалуйста, подскажите, как реализовать под каждую новость!
Спасибо!

Подскажите, пожалуйста, как Вам удалось это сделать? Я столкнулась с точно такой же проблемой. Заранее благодарю

Судя по Вашей песочнице (вверху прикреплённой), вместо «openmodal» используйте, например, индексы 1,2,3 и т.д. под каждую новость:

Добрый день, хотелось бы понять как реализовать возможность не закрывать модальное окно автоматически при выборе какого-то селектора внутри, у меня их два, и мне нужно подождать пока на оба нажмут и только потом закрывать окно.

Более того, при выборе селекторов внутри, обновляется страница с данными, и вот даже не знаю как решить эту проблему, что бы страница обновилась (при выборе пользователем) но модальное окно не закрывалось

Добрый день! Сделайте эту ситуацию (модальное окно с селекторами) в какой-нибудь песочнице и укажите ссылку на неё.

Подскажите пожалуйста, если планируется размещать слайдер в модальном окне, как предпочтительней на CSS или на яваскрипт делать модальное окно.

Без CSS вам в любом случае не обойтись. Т.к. это единственная возможность, которая у нас есть для стилизации элементов в браузере. А вот использовать вам дополнительно JavaScript или нет, никто кроме вас не знает. Это зависит от функционала. Если вас будет устраивать то, что у вас получится только с использованием CSS, то тогда JavaScript не используйте. А если нет, то тогда с JavaScript.

Поэтому, когда у вас есть возможность создать что-то без JavaScript и оно вас будет полностью устраивать, то JavaScript использовать не надо.

Привет!
Если вы хотите доработать пример с JS, то нужно к ссылкам добавить какой-нибудь признак, который будет определять, что они предназначены для открытия модального окна. Например, атрибут data-toggle=«modal». А атрибут data-target использовать для указания селектора на то модальное окно, которое эта ссылка должна открывать.
Например:
Далее нужно переработать JavaScript код, например, следующим образом:
Ссылка на пример: открыть

Спасибо большое! Особенно, за разжевывание информации) так понимаешь, что и как работает! еще раз спасибо!

Здравствуйте! Спасибо! Попробуйте перегрузить страницу с использованием Ctrl + F5.
У вас в коде ошибка:

И вот еще возник вопрос, модальное окно появляется в истории окон %) Можно его не записывать туда (убрать из истории)? А то по стрелке «назад» открывается, чтобы Вы думали?!)) — модальное окно, а не предыдущая страница

Это пример реализации на чистом CSS. Чтобы этого не было можно просто немного поменять логику и добавить чуть-чуть JavaScript кода. Пример модального окна открывающегося и закрывающего с использованием JavaScript.

Благодарю, получилось )) В чем прикол? И как можно быть уверенным в том, что у пользователя не возникнет такого прочтения кода?

Когда браузер открывает страницу, он кэширует в соответствии с настройками вашего сервера ресурсы сайта, такие как стили, скрипты, изображения и т.д.
И когда вы что-то изменяете, например, в CSS, браузер об этом не знает. Он при следующей загрузки берёт это из своего кэша. Это позволяет браузеру, когда пользователь переходит по страницам сайта или снова возвращается на него через некоторое время, не загружать эти ресурсы.
Для того чтобы браузеру указать, что у вас изменились стили, к ссылке можно просто добавить GET-параметр, например, ver с некоторым значением:

не понимаю какое событие влияет на закрытие окна? в теге а есть ссылка на который в стилях не отмечен, зачем она?

Читайте также: