473,394 Members | 1,875 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

Favicon type detection - possible?

I'm very noobish when it comes to Javascript, in fact I wasn't intending to
use it at all, but I've got myself distracted by this "problem". I want to
use an animated gif as my favicon. This works fine in Firefox, but Opera
and IE6 ignore it. To get around this, I started off attempting a browser
detection script (I know!) which I cobbled together from a couple of others,
but this doesn't work (is it because I'm trying to do weird things within
the header?). If I want to go down that road I can do it in PHP anyway.

But I thought, there must surely be a more elegant way of doing this. Like

if (browsericonsupport = gif) then
use gif
else
use ico

Any comments would be gratefully received.

+e

P.S. - for anyone interested, this is my cobbled together browser detection
code; I know it doesn't do anything with the favicon, but I was just seeing
if it would actually detect browsers correctly. The first bit, which I got
from here: http://www.quirksmode.org/js/detect.html does pick out the
browser correctly (tested on Firefox, Opera and IE6) but when I attempt to
alert it falls straight through the code. If I add "alert(browserName);"
then it alerts with "undefined" in all three browsers. I appreciate this is
very noobish!

<HEAD>
<SCRIPT language="JavaScript">
<!--
var BrowserDetect = {
init: function () {
this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
this.version = this.searchVersion(navigator.userAgent)
|| this.searchVersion(navigator.appVersion)
|| "an unknown version";
this.OS = this.searchString(this.dataOS) || "an unknown OS";
},
searchString: function (data) {
for (var i=0;i<data.length;i++) {
var dataString = data[i].string;
var dataProp = data[i].prop;
this.versionSearchString = data[i].versionSearch || data[i].identity;
if (dataString) {
if (dataString.indexOf(data[i].subString) != -1)
return data[i].identity;
}
else if (dataProp)
return data[i].identity;
}
},
searchVersion: function (dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index == -1) return;
return
parseFloat(dataString.substring(index+this.version SearchString.length+1));
},
dataBrowser: [
{ string: navigator.userAgent,
subString: "OmniWeb",
versionSearch: "OmniWeb/",
identity: "OmniWeb"
},
{
string: navigator.vendor,
subString: "Apple",
identity: "Safari"
},
{
prop: window.opera,
identity: "Opera"
},
{
string: navigator.vendor,
subString: "iCab",
identity: "iCab"
},
{
string: navigator.vendor,
subString: "KDE",
identity: "Konqueror"
},
{
string: navigator.userAgent,
subString: "Firefox",
identity: "Firefox"
},
{
string: navigator.vendor,
subString: "Camino",
identity: "Camino"
},
{ // for newer Netscapes (6+)
string: navigator.userAgent,
subString: "Netscape",
identity: "Netscape"
},
{
string: navigator.userAgent,
subString: "MSIE",
identity: "Explorer",
versionSearch: "MSIE"
},
{
string: navigator.userAgent,
subString: "Gecko",
identity: "Mozilla",
versionSearch: "rv"
},
{ // for older Netscapes (4-)
string: navigator.userAgent,
subString: "Mozilla",
identity: "Netscape",
versionSearch: "Mozilla"
}
],
dataOS : [
{
string: navigator.platform,
subString: "Win",
identity: "Windows"
},
{
string: navigator.platform,
subString: "Mac",
identity: "Mac"
},
{
string: navigator.platform,
subString: "Linux",
identity: "Linux"
}
]
};
BrowserDetect.init;

//bit nicked from http://www.quirksmode.org/js/detect.html above
//bit cobbled together by me below

var browserName = BrowserDetect.browser;
if (browserName=="Netscape")
{
alert("Hi Netscape User!");
}
else
{
if (browserName=="Explorer")
{
alert("Hi, Explorer User!");
}
else
{
if (browserName=="Firefox")
{
alert("Hi, Firefox User!");
}
else
{
if (operaName=="Opera")
{
alert("Hi, Opera User!");
}
else
{
alert("What ARE you browsing with here?");
}
}
}
}
//-->
</SCRIPT>
</HEAD>
Sep 20 '06 #1
5 1848
The Eclectic Electric wrote:
I'm very noobish when it comes to Javascript, in fact I wasn't intending to
use it at all, but I've got myself distracted by this "problem". I want to
use an animated gif as my favicon. This works fine in Firefox, but Opera
and IE6 ignore it. ...
<snip>
>
But I thought, there must surely be a more elegant way of doing this. Like

if (browsericonsupport = gif) then
use gif
else
use ico

Any comments would be gratefully received.
Wouldn't the HTTP accept header for the request from the browser for
the icon be expected to state the accepted content types? Why not
detect that with you PHP and serve content accordingly?
P.S. - for anyone interested, this is my cobbled together browser
detection code; I know it doesn't do anything with the favicon, but
I was just seeing if it would actually detect browsers correctly....
<snip>

It does not.

Richard.

Sep 20 '06 #2
"Richard Cornford" <Ri*****@litotes.demon.co.ukwrote in message
news:11*********************@b28g2000cwb.googlegro ups.com...
The Eclectic Electric wrote:
>I'm very noobish when it comes to Javascript, in fact I wasn't intending
to
use it at all, but I've got myself distracted by this "problem". I want
to
use an animated gif as my favicon. This works fine in Firefox, but Opera
and IE6 ignore it. ...
<snip>
>>
But I thought, there must surely be a more elegant way of doing this.
Like

if (browsericonsupport = gif) then
use gif
else
use ico

Any comments would be gratefully received.

Wouldn't the HTTP accept header for the request from the browser for
the icon be expected to state the accepted content types? Why not
detect that with you PHP and serve content accordingly?
Very good idea. Unfortunately I can't see a way to isolate the specific
request for the icon.

+e
Sep 21 '06 #3
The Eclectic Electric wrote:
Richard Cornford wrote:
>The Eclectic Electric wrote:
>>I'm very noobish when it comes to Javascript, in fact I wasn't
intending to use it at all, but I've got myself distracted by
this "problem". I want to use an animated gif as my favicon.
This works fine in Firefox, but Opera and IE6 ignore it. ...
<snip>
>Wouldn't the HTTP accept header for the request from the
browser for the icon be expected to state the accepted
content types? Why not detect that with you PHP and
serve content accordingly?
Very good idea. Unfortunately I can't see a way to isolate
the specific request for the icon.
If PHP is worth anything as a server side scripting language that task
is trivial. Try asking in a PHP group.

Richard.

Sep 21 '06 #4
"Richard Cornford" <Ri*****@litotes.demon.co.ukwrote in message
news:11*********************@e3g2000cwe.googlegrou ps.com...
The Eclectic Electric wrote:
>Richard Cornford wrote:
>>The Eclectic Electric wrote:
I'm very noobish when it comes to Javascript, in fact I wasn't
intending to use it at all, but I've got myself distracted by
this "problem". I want to use an animated gif as my favicon.
This works fine in Firefox, but Opera and IE6 ignore it. ...
<snip>
>>Wouldn't the HTTP accept header for the request from the
browser for the icon be expected to state the accepted
content types? Why not detect that with you PHP and
serve content accordingly?
Very good idea. Unfortunately I can't see a way to isolate
the specific request for the icon.

If PHP is worth anything as a server side scripting language that task
is trivial. Try asking in a PHP group.

Richard.
I have to confess I'm out of my depth when it comes to the technicalities of
these things, but wouldn't the request for <LINK REL="icon" ... /go to the
web server and not get routed through the PHP engine? Once I've served the
original page, isn't the PHP engine quiet until another PHP page is
requested?

+e
Sep 21 '06 #5
The Eclectic Electric wrote:
Richard Cornford wrote:
>The Eclectic Electric wrote:
>>Richard Cornford wrote:
<snip>
>>Very good idea. Unfortunately I can't see a way to isolate
the specific request for the icon.

If PHP is worth anything as a server side scripting language that task
is trivial. Try asking in a PHP group.

I have to confess I'm out of my depth when it comes to the technicalities
of these things, but wouldn't the request for <LINK REL="icon" ... />
go to the web server and not get routed through the PHP engine?
First, it does no make sense to ask PHP questions in a javascript
newsgroup.

If the HREF referred to in the LINK element is the URL of a PHP
resource it will receive the request and should be able to examine the
HTTP header. Otherwise the HTTP server can map any incoming URL to any
resource, including PHP scripts.
Once I've served the original page, isn't the PHP engine quiet until
another PHP page is requested?
Ask a PHP group (humbly).

Richard.

Sep 21 '06 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Mike | last post by:
I am sure that I am making a simple boneheaded mistake and I would appreciate your help in spotting in. I have just installed apache_2.0.53-win32-x86-no_ssl.exe php-5.0.3-Win32.zip...
7
by: Bart | last post by:
Hi there, If I use frames, should a reference to the favicon.ico (like: <link rel="shortcut icon" href="pictures/favicon.ico" type="image/x-icon">) be placed on _every page_, or is one reference...
1
by: Patrick Olurotimi Ige | last post by:
I have an icon called favicon.ico that i created for a website and it WORKS but u have to first bookmark the page before u see the ICON in the URL instead of the IE icon! <link rel="shortcut...
4
by: Chameleon | last post by:
the extension of favicon MUST BE ico? what if I use a 16x16 favicon.png?
15
by: BT | last post by:
I'm have a problem showing a favicon in ver 1.7.10. It shows up correctly in the address bar, but is missing from the tab. I've tried each of these HTML 'statements' to add the favicon to the page,...
2
by: alice | last post by:
I'm trying to create a favicon which I've done before, and it just won't show up. I've even saved the file as a gif and entered the URL of where the file is according to my FTP program, and I get a...
7
by: =?Utf-8?B?VmFuY291dmVyTWlrZQ==?= | last post by:
Hi there, I am using asp.net 2.0 and C# to develop my website. I would like to put a favicon to my website, so I put the following code in the <headsection right after <titletag in a master...
4
by: mistral | last post by:
Does it possible change favicon icon depending on browser type: display favicon.ico for Internet Explorer browsers, and favicon.gif for the rest browsers? Problem is that ugly MSIE can display only...
19
by: Moon | last post by:
Bergamot wrote in <6i534eFolqk5U1@mid.individual.net>: Done! http://moon.descentforum.net/creep/ with 2 issues though: I liked the funtionality of target="_blank", so people that are...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.