0

我正在编写一个书签,它需要在我无法控制其设计的页面的上下文中工作。我需要小书签才能在使用框架(在框架集中)中运行的某些页面。jQuery-UI 对话框是否可以在框架内工作?

目前,当我遇到一个带有框架集的页面时,我会像这样创建我的对话框:

var frame = window.frames[0];
var div = $(frame.document.createElement("div"));
div.html("My popup contents");
div.dialog( ... );

结果是 jQuery 将 ui-widget div 附加到主文档,而不是框架的文档。由于主文档只是一个框架集,因此没有显示任何内容。我在 jquery-ui API 中找不到任何选项来指定应在哪个文档中构建小部件。小书签必须从外部文档的上下文中运行(或至少开始)。

我知道不可能在框架上显示叠加层;我对仅在单个框架中显示感到满意。此外,其他一些值得注意的小书签无法在带有框架集的页面上运行,因此这可能是一个常见问题。

建议?

4

2 回答 2

0

这就是我最终做的事情:我没有尝试在框架内或框架上显示,而是让小书签重写页面以删除框架集并将我自己的正文和内容添加到页面。这允许小书签在删除框架集之前仍然内省框架并从它们获取构建覆盖所需的数据,但允许覆盖仍然工作。

像这样的东西:

if (window.frames) {
    for (var i = 0; i < window.frames.length; i++) {
        // ... grab data from the frame ...
    }
}

if ($("frameset")) {
    $("html").children("frameset").remove();
    document.body = document.createElement("body");
    $("html").append(document.body);
    // ... add my stuff to body ...
}
于 2010-07-19T14:55:27.360 回答
0

书签通常不使用 jQuery。大多数小书签都会打开一个带有 jQ​​uery 的窗口。

于 2010-07-06T16:26:03.017 回答