锐对话框/面板不是在IE iframe中正确地呈现(YUI dialog/panel not ren

2019-10-19 17:54发布

我已经建立了几个弹出窗口 - 一些使用YUI的对话框,一些使用面板。 这些获得FF时,Windows Safari浏览器,Chrome浏览器正确呈现。 请参考下面的截图:

http://dl.dropbox.com/u/7681433/YUI%20Forum%20Screenhots/WorkingDialog-Firefox.PNG http://dl.dropbox.com/u/7681433/YUI%20Forum%20Screenhots/WorkingPanel-Firefox.PNG

然而,在IE 7,9个10的对话框中有时会呈现一个扭曲的方式,通常有时会出现。 看下面的截图:

http://dl.dropbox.com/u/7681433/YUI%20Forum%20Screenhots/DistortedDialog-IE9.PNG http://dl.dropbox.com/u/7681433/YUI%20Forum%20Screenhots/DistortedPanel-IE9.PNG

我无法找出什么在IE出错只是有时 。 我使用的YUI版本2.7.0。

要看到这个动作,你可以访问此博客页面。 将鼠标悬停在一个缩略图,点击预览/下载/发送按钮。

http://embed-test-blog.blogspot.in/2012/04/sample-for-yui-forum.html

我以上所提供的博客网址嵌入使用iframe以下网址。

http://embed.mediapartner.com/embed.aspx?e=f2+Wk9GtFDM=

我注意到,如果我直接从IE访问此网址中,对话框显示并渲染好吗! 所以,我强烈地感觉到,这是事做YUI对话正在IE iframe中调用。 但我无法弄清楚如何克服这个问题。 有任何想法吗?

下面是我使用上面的预览对话框的代码 - 这是任何帮助,以防万一。

LargePreviewPopup =
{
popup: null,
    init: function()
    {
        this.popup = new YAHOO.widget.Panel("LargePreviewPopup",
        {
            width: "380px",
            height: "410px",
            zIndex: 3000,
            fixedcenter: true,
            visible: false,
            draggable: true,
            modal: true,
            constraintoviewport: false,
            effect: { effect: YAHOO.widget.ContainerEffect.FADE, duration: 0.10 }
        });
        if (YAHOO.env.ua.ie > 0)
            this.popup.cfg.setProperty("iframe", true);
        PluginFix.showHidePlugins(this.popup);
        this.popup.setHeader("NA");
        this.popup.setBody("NA");
        this.popup.render(document.body);
    },


onShowLargePreviewClick: function(userId, captionId, height, width)
    {
        if (!this.popup)
            this.init();
        this.popup.setBody("<div class='ajaxloader'></div>");
        this.popup.setHeader("Preview");

this.popup.hideEvent.subscribe(function()
        {
            LargePreviewPopup.popup.setBody("<div class='ajaxloader'></div>");
        });

this.popup.cfg.setProperty("height", height + 57 + "px");
        this.popup.cfg.setProperty("width", width + 35 + "px");
        this.popup.show();

var cObj = Custom.Ajax.asyncRequest('GET',
        '/embed/embed_operations.aspx?action=large_preview&amp;user_id=' + userId + '&amp;caption_id=' + captionId
            + '&amp;h=' + height + '&amp;w=' + width,
            {
                success: function(o)
                {
                    LargePreviewPopup.popup.setBody(o.responseText);
                }
            });
    }
};

Answer 1:

对于谁可能会面临这个问题的人 - 我不能使用YUI摸不着头脑。 所以我使用的IE浏览器的jQuery UI的实现我的弹出窗口。 因此,对所有非IE浏览器我用YUI弹出窗口而IE浏览器,这是使用jQuery UI的完成。



文章来源: YUI dialog/panel not rendering correctly in IE iframe