我有一个关于基于CSS的弹出窗口的问题,比如jQuery UI的对话框系统或Colorbox生成的窗口。如果我使用那些(或类似的东西)打开一个HTML页面的弹出窗口,并且该页面中有Javascript,弹出窗口中的Javascript是否在其自己的上下文中运行,或者它是否成为上下文的一部分打开它的父窗口中的Javascript?我这样问,我可以在两个页面(父和弹出)上编写Javascript,这样就没有命名空间冲突。
提前致谢! 道格
答案 0 :(得分:1)
这取决于弹出窗口的类型。 (我假设我们在讨论页面弹出窗口,而不是window.open()
打开新浏览器窗口的那些。)
如果它包含一个IFRAME,您在其中加载一个单独的页面,那么该页面将有自己的样式。您将不得不重新加载所需的任何CSS和JavaScript文件。
如果它不包含IFRAME,而只是一个普通的DIV或通过AJAX加载内容的其他元素(或直接在“父”HTML页面中输出),那么弹出窗口将在父元素的上下文中运行页。
答案 1 :(得分:1)
如果您使用真正的弹出式窗口(新窗口),它肯定在其自己的上下文中。
如果你纯粹使用HTML模式窗口,它取决于。它可以是iframe(自己的上下文)或者注入的元素(父上下文)。
答案 2 :(得分:1)
使用Colorbox,您可以将iframe属性设置为true,它将在iframe中加载内容。这为页面提供了自己的范围。如果您不使用iframe,那么该页面将加载到当前文档的上下文中。
$('a.someLink').colorbox({ href:"somePage.html", iframe: true });