2010-03-22 4 views
0

У меня вопрос о всплывающих окнах, основанных на CSS, например, сгенерированных диалоговой системой jQuery UI или Colorbox. Если я использую эти (или что-то вроде них), чтобы открыть всплывающее окно на странице HTML, и на этой странице есть Javascript, работает ли Javascript во всплывающем окне в его собственном контексте или становится частью контекста Javascript в родительском окне, которое его открыло? Я прошу, чтобы я мог писать Javascript на обеих страницах (родительский и всплывающий), поэтому конфликт пространства имен отсутствует.Всплывающие окна Javascript и CSS

Заранее благодарен! Doug

ответ

1

Это зависит от типа всплывающего окна. (Я предполагаю, что мы говорим о всплывающих всплывающих подсказках здесь, а не window.open(), которые открывают новое окно браузера.)

Если он содержит IFRAME, в котором вы загружаете отдельную страницу, тогда эта страница будет иметь свою собственную стили. Вам нужно будет повторно загрузить любые файлы CSS и JavaScript, которые вам нужны.

Если он не содержит IFRAME, а просто обычный DIV или другой элемент, в который содержимое загружается через AJAX (или напрямую выводится на «родительской» HTML-странице), всплывающее окно запускается в контексте родительской.

+0

У вас есть то, о чем я говорю, это будет всплывающее всплывающее окно, а не стиль windows.open(). Так как я использую Colorbox для открытия всплывающего окна и установки iFrame в true, похоже, что это делает Javascript во всплывающем прогоне в его собственном контексте. Спасибо! –

+0

@writes_on вы можете легко узнать, щелкнув правой кнопкой мыши всплывающее содержимое в Firefox. Если вы получаете пункт меню, говорящий «этот кадр>», то вы находитесь в IFrame. –

1

Если вы используете реальные всплывающие окна (новые окна), это определенно в его собственном контексте.

Если вы используете модальные окна исключительно в HTML, это зависит. Это может быть iframe (собственный контекст) или введенные элементы (родительский контекст).

1

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

$('a.someLink').colorbox({ href:"somePage.html", iframe: true }); 
+0

Это именно то, что я делаю, и из того, что вы говорите, это похоже на наличие полностью независимой страницы (вроде бы, например window.open()). И это будет означать, что мой всплывающий Javascript будет работать в своем собственном контексте. Спасибо! –

Смежные вопросы