Bug Tracker

Ticket #2450 (closed bug: invalid)

Opened 7 years ago

Last modified 5 years ago

dialog over the div with scrollbars in firefox 2/mac

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

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

comment:1 Changed 7 years ago by paul

  • Owner changed from paul to rworth

comment:2 Changed 7 years ago by paul

  • Owner changed from rworth to scott.gonzalez

comment:3 Changed 7 years ago by scott.gonzal

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

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 7 years ago by scott.gonzal

  • Status changed from closed to reopened
  • Resolution worksforme deleted
  • 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 6 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 5 years ago by john

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