[BUGFIX] Fixes position of suggest wizzard autocomplete result in IE 39/35339/2
authorTorben Hansen <derhansen@gmail.com>
Fri, 12 Dec 2014 09:49:12 +0000 (10:49 +0100)
committerMarkus Klein <klein.t3@reelworx.at>
Mon, 5 Jan 2015 12:42:03 +0000 (13:42 +0100)
A 5 years old bug in script.aculo.us leads to the problem, that
autocomplete results of the suggest wizzard are displayed at a
wrong position for Internet Explorer browsers. Depending on the
screen resolution, the autocomplete results may even be out of the
visual area of the users screen.

Since script.aculo.us seems to be unmaintained, the patch is directly
applied to the script.aculo.us source files, so we at least can
provide a bugfix for TYPO3 users using Internet Explorer.

This patch also fixes an IE fix in script.aculo.us. Instead of using
javascript:false we now use about:blank as source for the IE fix
iframe, which prevents the text “false” being displayed when
autocompletion results appear in IE.

Resolves: #63604
Releases: master, 6.2
Change-Id: Ib0421a308bb0652b9aed8be73ab6c78900ebe13d
Reviewed-on: http://review.typo3.org/35339
Reviewed-by: Mathias Schreiber <mathias.schreiber@wmdb.de>
Tested-by: Mathias Schreiber <mathias.schreiber@wmdb.de>
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>

index 5137ab5..345451f 100644 (file)
@@ -64,7 +64,7 @@ Autocompleter.Base = Class.create({
     this.options.onShow       = this.options.onShow ||
       function(element, update){
         if(!update.style.position || update.style.position=='absolute') {
-          update.style.position = 'absolute';
+          update.style.position = (Prototype.Browser.IE) ? 'inline':'absolute';
           Position.clone(element, update, {
             setHeight: false,
             offsetTop: element.offsetHeight
@@ -99,7 +99,7 @@ Autocompleter.Base = Class.create({
       new Insertion.After(this.update,
        '<iframe id="' + this.update.id + '_iefix" '+
        'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
-       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
+       'src="about:blank" frameborder="0" scrolling="no"></iframe>');
       this.iefix = $(this.update.id+'_iefix');
     if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);