0

我有一个关于基于 CSS 的弹出窗口的问题,例如由 jQuery UI 的对话框系统或 Colorbox 生成的弹出窗口。如果我使用这些(或类似的东西)打开一个 HTML 页面的弹出窗口并且该页面中包含 Javascript,那么弹出窗口中的 Javascript 是在其自己的上下文中运行,还是成为Javascript 在打开它的父窗口中?我要求我可以在两个页面(父页面和弹出窗口)上编写 Javascript,这样就不会发生命名空间冲突。

提前致谢!道格

4

3 回答 3

1

这取决于弹出窗口的类型。(我假设我们在这里讨论的是页内弹出窗口,而不是window.open()打开新浏览器窗口的弹出窗口。)

如果它包含一个 IFRAME,您可以在其中加载一个单独的页面,那么该页面将有自己的样式。您必须重新加载所需的任何 CSS 和 JavaScript 文件。

如果它不包含 IFRAME,而只是一个常规的 DIV 或其他通过 AJAX 加载内容的元素(或直接在“父”HTML 页面中输出),则弹出窗口将在父页面的上下文中运行。

于 2010-03-22T12:23:35.630 回答
1

如果您使用真正的弹出窗口(新窗口),它肯定是在它自己的上下文中。

如果您纯粹在 HTML 中使用模态窗口,这取决于。它可以是 iframe(自己的上下文)或注入的元素(父上下文)。

于 2010-03-22T12:24:52.987 回答
1

使用 Colorbox,您可以将 iframe 属性设置为 true,它将在 iframe 中加载内容。这为页面提供了自己的范围。如果您不使用 iframe,则页面将在当前文档的上下文中加载。

$('a.someLink').colorbox({ href:"somePage.html", iframe: true });
于 2010-03-22T12:27:31.363 回答