Bug Tracker

Opened 8 years ago

Closed 6 years ago

#2450 closed bug (invalid)

dialog over the div with scrollbars in firefox 2/mac

Reported by: kof13 Owned by: scottgonzalez
Priority: trivial Milestone: 1.2.4
Component: ui Version: 1.2.3
Keywords: Cc:
Blocked by: Blocking:

Description

Is it possible to show the dialog over the scrollbars of the div? Temporary I can see the scrollbars of the div behind the dialog. If not, is it possible to determine if behind the dialog any scrollbars and set overflow to hidden bei showing dialog and set auto on closing?

Change History (6)

comment:1 Changed 8 years ago by paul

  • Owner changed from paul to rworth

comment:2 Changed 8 years ago by paul

  • Owner changed from rworth to scott.gonzalez

comment:3 Changed 8 years ago by scott.gonzal

  • Resolution set to worksforme
  • Status changed from new to closed

I can't reproduce the behavior you have described. If I create a div that has scrollbars and place a dialog over the scrollbars, they do not pierce through the dialog (tested in Firefox 2.0.0.12 on Windows).

If you continue to have this problem, please re-open this ticket and provide a test page.

comment:4 Changed 8 years ago by scott.gonzal

  • Resolution worksforme deleted
  • Status changed from closed to reopened
  • Summary changed from dialog over the div with scrollbars in firefox 2 to dialog over the div with scrollbars in firefox 2/mac

This problem is for Macs only. See related thread for possible fix.

comment:5 Changed 8 years ago by ivan

The background iframe trick works for FF2/Mac as well, but currently the bgiframe plugin only handles IE6. This patch works for me (caution: I didn't test it under IE6, and it doesn't support all the options available).

--- a/plugins/bgiframe/jquery.bgiframe.js
+++ b/plugins/bgiframe/jquery.bgiframe.js
@@ -71,7 +71,8 @@
  */
 $.fn.bgIframe = $.fn.bgiframe = function(s) {
        // This is only for IE6
-       if ( $.browser.msie && /6.0/.test(navigator.userAgent) ) {
+       if ( ($.browser.msie && /6.0/.test(navigator.userAgent)) || 
+            (/Mac/.test(navigator.platform)) && /Firefox\/2/.test(navigator.userAgent) ) {
                s = $.extend({
                        top     : 'auto', // auto == .currentStyle.borderTopWidth
                        left    : 'auto', // auto == .currentStyle.borderLeftWidth
@@ -80,18 +81,22 @@ $.fn.bgIframe = $.fn.bgiframe = function(s) {
                        opacity : true,
                        src     : 'javascript:false;'
                }, s || {});
-               var prop = function(n){return n&&n.constructor==Number?n+'px':n;},
-                   html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
+               var prop = function(n){return n&&n.constructor==Number?n+'px':n;};
+           var html = ($.browser.msie) ? '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
                               'style="display:block;position:absolute;z-index:-1;'+
                                       (s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
                                               'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWi
                                               'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLef
                                               'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.wid
                                               'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.
-                                       '"/>';
+                               '"/>'
+                       : '<iframe class="bgiframe" frameborder="0" tabindex="-1" src="'+s.src+'"'+
+                       'style="display:block;position:absolute;z-index:-1;'+
+                       (s.opacity !== false?'opacity: 0;':'')+
+                'top:0;left:0;width:100%;height:100%;"/>';
                return this.each(function() {
                        if ( $('> iframe.bgiframe', this).length == 0 )
-                               this.insertBefore( document.createElement(html), this.firstChild );
+                               this.insertBefore( $(html).get(0), this.firstChild );
                });
        }
        return this;

comment:6 Changed 6 years ago by john

  • Resolution set to invalid
  • Status changed from reopened to closed
Note: See TracTickets for help on using tickets.