I recently updated to 6.x.1.10 and the small png files are no longer showing. When I check out the page with Firebug it does appear the images are in the code correctly but there is an inline style (show below) that seems to hide the images. If I remove the style with Firebug the images show up. Does that inline style need to be in there?
The HTML is: span class="mailto" style="display: inline-block;"
Not sure how to put HTML in there as code...
Thanks.
| Comment | File | Size | Author |
|---|---|---|---|
| #21 | extlink_795360_2.patch | 538 bytes | fax8 |
| #16 | extlink_795360_1.patch | 536 bytes | fax8 |
Comments
Comment #1
quicksketchThat style should not be showing if you're running FireFox. Have you set Firefox identify itself as Internet Explorer through some plugin or add-on?
Comment #2
fax8 commentedSame problem here. No strange plugins installed. Seems that both Firefox 3.6 and Google Chrome evaluate the following line as true, hence the inline rule added:
Comment #3
fax8 commented$.support.boxModel is undefined
!$.support.boxModel is true
hence the if evaluates to true and IE rules are added.
Comment #4
fax8 commentedThis is probably a consequence of the fact that D6 comes with jQuery 1.2.6. It doesn't look that it has support for $.support.boxModel.
Another solution is needed to detect IE <= 7.
Comment #5
FunkMonkey commentedfax8 is probably correct. I don't have any extensions that should set it to mimic IE. And I do have the same problem in Chrome. And the images aren't showing in IE8 either.
Would it be reasonable to upgrade jQuery to a newer version to fix the issue?
Thanks.
Comment #6
quicksketchArg. This is silly. This damned icon display issue is driving me crazy. If $.support is undefined (it should be) then the conditional should never even get to $.support.boxModel and the whole thing should return FALSE.
The $.support variable should be completely empty in jQuery 1.2.6 (the version that comes with Drupal 6) and so it should fallback to the $.browser check. Newer versions of jQuery should have $.support.boxModel which will be TRUE in all browsers except for IE6.
@fax8: What version of jQuery are you using?
Comment #7
fax8 commentedjQuery 1.2.6 which comes with default core drupal 6.x install.
To verify which jQuery you are running just insert the following in the address bar while visiting your drupal website (tested with Firefox 3.6):
The problem here looks to be the fact that in jQuery 1.2.6 there is not a $.support.boxModel property while there is a $.support one. Then accessing to $.support.boxModel returns undefined which negated (!) becomes true.
What about using something like the following?
Tested with FF 3.6 and Chrome and it seems to work as expected. No Windows machine here so not able to test on IE.
Based on http://stackoverflow.com/questions/27509/detecting-an-undefined-object-p...
Comment #8
fax8 commented@FunkMonkey I wouldn't risk upgrading jQuery to a newer release as other modules and Drupal itself could rely on that particular version and upgrading might break something else.
Comment #9
JamesAn commentedTesting #7's proposed fix using jQuery 1.2.6
Works on FF 3.6.3, Chrome 5 beta, IE 5, IE 6, IE 7, and IE 9 Preview. Doesn't work on IE 8 though. Not sure why.. =\Oops. Mixed up my browsers. Works on everything except IE 9 Preview (which doesn't matter for now, I guess).
Comment #10
JamesAn commentedFlipping switch..Comment #11
JamesAn commentedFlipping switch back.. silly me..
Comment #12
fax8 commentedWhat problems did you experienced with IE8?
I just tested it and seems to work fine: if() evaluated as false and not executed.
Comment #13
fax8 commentedOk, no problems.
Comment #14
fax8 commentedComment #15
FunkMonkey commentedThe code in #7 appears to have fixed this for me. Tested in Firefox 3.6, IE 8, and Chrome 4.1
I'm jQuery using 1.2.6 as well.
Comment #16
fax8 commentedOk, I think we have tested enough. Setting this as RTBC. Attached a patch which implements the changes in #7.
Maintainers please test and release a new versions.
Thanks,
Fabio Varesano
Comment #17
quicksketchCould we clarify this comparison?
It seems like we're negating before checking undefined, in which case this would always be false no matter what the value of $.support.boxModel is.
Comment #18
fax8 commentedYou are perfectly right. Sorry for the error. With the code above the first block in the or is always false.
I just tested with IE 6,7,8 and the other users confirm it: it's just enough the following if statement:
The question now is.. what's the meaning of the first part of the or? Can we get rid of it?
Comment #19
fax8 commentedComment #20
quicksketchThe use of $.browser is deprecated and should not be used in newer versions of jQuery. Instead $.support should be used whenever possible. The intention was to use $.support if it exists and used $.browser as a fallback. Unfortunately it seems like $.support is mysteriously actually available when it shouldn't be for some users, which is why we're seeing this problem. On a fresh installation of Drupal with jQuery 1.2.6, this problem does not present itself currently because $.support isn't defined (as it shouldn't be).
Comment #21
fax8 commentedI tracked down where $.support is defined on my website. I have the Jquery Cycle Plugin installed and in it's code there is:
So, that's were the $.support variable is defined for my website.
Ok, attached a new patch which should fix the problems arisen in #17.
Comment #22
butler360 commentedLatest patch works for me in all browsers I have installed: IE8, Chrome 5, Firefox 3.6, and Opera 10.
Comment #23
vako commentedI am having the same issue, applied the patch in #21 yet still unable to see the icons in IE8, but shows fine in Firefox 3.6.3
using jQuery 1.2.6
Comment #24
FunkMonkey commentedPatch works for me in Firefox 3.6, IE8, Chrome 4.1.
Comment #25
iori57 commentedAfter applying patch #21, chrome shows the icon now, but IE8 and Firefox doesn't show it.. (only a blank space there)
*Update* After refreshing several times in Firefox, the icon miraculously appeared =.= I wonder if every user needs to refresh several times to see the icon?
Still doesn't work for IE8 though.. no matter how many times i refreshed the page... I believe Vako is having the same problem?
Can anyone help me have a look at http://www.thesimplest.net/links to see if the icon is there? (particularly on IE8)
Comment #26
iori57 commentedCan I ask some questions regarding this line of code? I'm not a coder so doesn't really get this..
1) Why do we need to add
$('span.ext, span.mailto').css('display', 'inline-block');? Seems like it is added for IE versions lesser than 7 and also if $.support equals to true... which leads to the second question..2) What is $.support actually?
Second thing, I found out why it doesn't work on my IE8, because $.browser.version some how equals to 6.0 on my browser.. (i typed in javascript:$.browser.version; to check) though I click the 'About' in IE and it says version 8.0.7600.16385
Weird..
Comment #27
fenstrat#21 works for me, both with and without jquery_update-6.x-2.x in IE 6, 7, 8, Firefox 3.6, Chrome 5, Safari 4 and Opera 10.
Well tracked down fax8!
@itori57, the icons on the page linked to in #25 shows up fine in IE8 for me.
Comment #28
quicksketchThanks fax8, I've committed #8 and I'll get out a 6.11 release right away.
Comment #29
fax8 commentedI guess you mean #21 .. great, thanks!
Comment #30
quicksketchOh yes, #21, I have no idea where I came up with "#8". This fix is now already rolled out in the 1.11 version. Thanks again!
Comment #31
iori57 commentedThanks for the patch in #21.. however I still don't understand why my internet explorer 8 is detected as 6.0, making the icon not showing up.. might happen to some of the visitors too..
Can someone explain why need to add $('span.ext, span.mailto').css('display', 'inline-block'); for lower IE versions?
Can't we just remove the back part with only the front part? Something like..
Thanks again!
Comment #32
fax8 commentedCan someone explain why need to add $('span.ext, span.mailto').css('display', 'inline-block'); for lower IE versions?
To fix it's broken box model
Can't we just remove the back part with only the front part?
It won't work with jQuery 1.2.6 (Drupal 6.x default) as it doesn't have support for $.support
Comment #33
iori57 commented=.= Nevermind I don't know what is box model/jQuery/$.support..
I guess the only problem now is on IE8 that wrongly detected as IE6 for some reason (like mine) other than that it's all good. Thanks =)
Comment #34
eyolf commentedThe icons still don't show up if one uses the meta-tag to force IE7 compatibility mode (meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7").
I've played around with various settings in the IE developer, and with Browser state set to IE8 compatible and Document state to IE7-standards (I don't know what the exact names are in English), everything works as it should. Does anyone know the meta tag to force this combination...?
Comment #35
vako commentedYes, shows great under FireFox, however doesn't show anything in IE 8, but reserves the space for it. i.e.: you can see a small space where it should be.
using ver 6.x-1.2
Comment #37
vako commentedRe-opening case, issue still exists and hopefully will be fixed.
i.e.: the graphics show under FireFox but not under any version of IE. Using Drupal 6.13 & 6.17.
Comment #38
quicksketchAre you already using the 6.x-1.11 version Vako?
Comment #39
vako commentedyes, I am using 6.x.1.11 and I deleted and copied the code again from a new download, just to make sure.
Still I can't seem to see the icons on any version of IE even on other computers.
Comment #40
betz commentedI can confirm the problem running firefox 3.5.9 on ubuntu.
And the same on chrome 5.0.375.99 also on ubuntu.
Both have the inline-block display.
Comment #41
vako commentedChrome is displaying the images, for me only IE has the problem. Has anyone tested it with Safari or Opera?
There must be a security setting in IE that is stopping the images from showing.
Comment #42
mjohnq3 commentedIf I enable Compatibility View in IE8 the images are displayed correctly; disabling it prevents them from appearing. Maybe this will be of some help to fixing the issue.
Comment #43
AliveAgain commentedIE8 doesn't show Icons in Compatibility Mode - switching it back to normal mode shows icons again. Does this help to resolve the problem?
Comment #44
leahmd commentedAnother point to add that might be of help, I added some clearfixes to my stylesheets and my extlink icon disappeared in IE8, when I removed them, they returned again.
Comment #45
leahmd commentedI was revisited by the disappearing external icon fairy. I fixed it by adding vertical padding to the span at the end of my theme css. (I also had to redeclare the right padding as some other css must have over-ridden it.)
Comment #46
vako commentedThanks for the tip. How can we test this and will it be possible to add it to the code...
Comment #47
owenmck commentedIs there a definitive solution to this?
I've inherited a Drupal-6.20 site with the "External Links" module enabled. All's well in FF, Chrome, Safari.
But in a few Internet Explorer versions, the image doesn't appear, only the space, as follows:
Other versions of IE are OK, including IE7 (!!) , IE8-with-IE8-Standards and IE9. I feel like the answer is just out of grasp.
Comment #48
quicksketch@owenmck: No I haven't seen/heard an answer to this problem. Do you have a link to a site with this problem? I'm guessing this is an issue with conflicting CSS, but maybe it's still something with External Links itself. This problem was "resolved" before IE8 existed, a new issue probably should have been created specifically for IE8/9 :P
Comment #49
alleyhector commentedI am using Drupal 7 and this is also happening for me, in the most current browsers as well (Firefox, Chrome, Safari and IE 9 running on a PC is what I'm looking at right now). Here's my link:
http://mtc.alta-dev.com/
Thoughts?
Update: All I did was add some css defining the width and height of the image to the external link span and it fixed it:
span.ext { width: 10px; height: 10px; }
Comment #50
owenmck commented@quicksketch (Apols for late reply).. It seems to be OK in my live envi, problem only exists in my UAT environment, so this is "my" problem. Thanks for your super-quick follow-up
Comment #51
quicksketch@owenmck: Thanks for the followup.
@alleyhector I apparently discarded my VirtualBox VMs, so it's going to take me a while to test this out in Windows browsers. You site works fine with extlinks in Chrome 21, Safari 6, and Firefox 15 on my Mac. Usually all those browsers are very consistent between Windows/Mac, so I'd be very surprised at any discrepancy there. If you can provide *exact* browser versions and exact description of the problem (with a screenshot preferably) that might help narrow down the situation. Seems to me like this is still an environment problem rather than something with extlinks.
Comment #52
quicksketchLooks like @alleyhector fixed the problem too (I'm guessing conflicting CSS on the site, as the theme's style.css will always override extlink.css). So still no problems found with External Links module itself. Please open a new issue for further problems with the icon not showing up.
Comment #53
osopolarIn my case (drupal 6 theme) I apply following css code to change the box model (css copied from omega 4):
Therefore the Work around for Internet Explorer box model problems will be applied:
Setting width and height as proposed in #49 works so far.