http://www.perlmonks.org?node_id=462804

kyoshu has asked for the wisdom of the Perl Monks concerning the following question:

to detect if browser supports xhtml i use:
#!/usr/bin/perl -wT use strict; use CGI; my $q = new CGI; if ( grep { /application\/xhtml\+xml/ } $q->Accept ) { print "Content- +type: application/xhtml+xml\n\n"; } else { print "Content-type: text/html;Charset=utf-8\n\n"; } print 'some xhtml'; ...
is there any more advanced way? module, or how you do it?

20050602 Edit by ysth: remove pre tags, add code tags

Replies are listed 'Best First'.
Re: how to detect if browser supports xhtml
by gellyfish (Monsignor) on Jun 02, 2005 at 09:08 UTC

    As far as it goes, that's a perfectly reasonable way of doing it, however I would counsel you to forget about trying to detect whether a browser explicity states it will accept XHTML as some (such as IE) don't advertised themselves as accepting 'application/xhtml+xml' will display XHTML if sent with an text/html content-type but don't display it properly if sent with the 'application/xhtml+xml' type. On the other hand there are others (such as galeon) that do advertise the xhtml content-type but do not display it correctly (in the absence of a stylesheet).

    This really goes back to the old browser detecting thing, which was similarly a bad idea. Produce your output to the standard and test with as many browsers as you can, b ut don't try making different output for them as you will never be able to keep up.

    /J\

Re: how to detect if browser supports xhtml
by Joost (Canon) on Jun 02, 2005 at 10:50 UTC