Может ли модальный диалог JavaScript быть модальным только для вкладки, а не для всего окна браузера?

Современные браузеры имеют интерфейс с несколькими вкладками, но функция JavaScript window.showModalDialog() создает модальный диалог, который блокирует все вкладок.

Я хотел бы знать, есть ли способ создать модальный диалог, который блокирует только вкладку, в которой он был создан?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
6
0
1 791
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете использовать один из более «Ajax-подобных» модальных диалоговых окон, которые представляют собой просто блоки с абсолютным позиционированием, плавающие поверх всего остального.

Они модальны для «документа», а не для браузера.

Например, посмотрите это этот плагин jQuery

P.S. showModalDialog() - это вызов только для IE, поэтому вы можете не использовать его вообще.

Ммм, забавно, все сайты сообщают, что это не поддерживается. У вас есть жизненный пример?

Michiel Overeem 13.11.2008 18:56

на самом деле Firefox (по крайней мере, 3) действительно реализует метод showModalDialog (). Не уверен, с каких пор ... но согласен абс. поз. div - лучший выбор.

scunliffe 13.11.2008 19:27

@Michiel: попробуйте это в FF3 <html> <head> </head> <body> <div> <a href = "javascript:d();"> Показать </a> </div> <script type = " текст / javascript "> функция d () {var f = " dialogLeft: 100; dialogTop: 100; dialogWidth: 500; dialogHeight: 4‌ 00; "; showModalDialog ("google.com ", окно, f);} </script> </body> &

z-boss 13.11.2008 19:55

Неа. Вполне возможно, что «слабая связь» IE8 в какой-то момент может вести себя так же, но в текущих бета-версиях этого не происходит.

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

  • гораздо удобнее / менее раздражает, чем настоящий модальный диалог
  • совместим с любым браузером

Сами showModalDialog / showModelessDialog обычно следует избегать.

Firefox 3 поддерживает window.showModalDialog (но также блокирует все вкладки).

Другие вопросы по теме