Channels In IE And Navigator Another area where Netscape and
Microsoft browsers differ is in their support for channels.
While this is still a developing technology for both companies,
it's nice to be able to support them both now. The problem is
that the techniques are completely different. In Navigator, we
use the Netcaster accessory that comes with the full Netscape
Communicator suite, while in IE4 and 5 we use a Channel
Definition Format (CDF) file written in a version of XML. We
aren't going to be describing the way you actually create
channel content for either of these in detail here. Our aim is
simply to show how you can support both of them.
The Wrox Web-Developer Home Page Channels The Home page of
our Web-Developer site offers a Wrox channel to both Navigator
4+ and IE4+ users. To achieve this we first detect the browser
type, using some simple ASP script in the page. If we find a
suitable browser, we set one of the two variables, blnIE4 or
blnNC4, to True:
...
<%
blnIE4 = False
blnNC4 = False
strUA = Request.ServerVariables("HTTP_USER_AGENT")
intMSIE = Instr(strUA, "MSIE ") + 5
If intMSIE > 5 Then
If CInt(Mid(strUA, intMSIE, Instr(intMSIE,strUA,".")
- intMSIE)) >= 4 Then
blnIE4 = True
End If
Else
If (Instr(strUA,"Mozilla/4.") Or
Instr(strUA,"Mozilla/5.")) _
And Instr(strUA, "compatible;") = 0 Then
blnNC4 = True
End If
End If
%>
...
Of course, you could use the Browser Capabilities or
BrowserHawk components instead. We chose to do it directly in
script purely to minimize server load.
Displaying The Channel Button Now we can display the
appropriate button image, or, in older browsers, some text to
indicate that we do support channels:
...
<% If blnIE4 Then %>
<a HREF="/webdev/channels/add_chan.cdf">
<img HSPACE="5" SRC="/images/add_chan.gif"
BORDER="0" WIDTH="136"
HEIGHT="20" ALT="Add to Internet Explorer 4
Channels"></a>
<% End If %>
<% If blnNC4 Then %>
<a HREF onClick="addChannel(); return false">
<img HSPACE="5" ONCLICK="return addChannel()"
SRC="/images/add_netc.gif"
BORDER="0" WIDTH="136"
HEIGHT="20" ALT="Add to Netcaster
Channels"></a>
<% End If %>
<% If blnIE4 = False And blnNC4 = False Then %>
Channels are available<br>for Internet Explorer 4
and<br>Netscape Navigator 4 users.
<% End If %>
...
The result in IE 4 is that we get an Add to Active Channels
button in the page. When clicked this simply loads a CDF file
that defines the channel; this is all that's required to start
the process in IE 4/5:
Creating A Netcaster Channel Netcaster works in a different
way. To create a channel here, we have to use some client-side
JavaScript to load Netcaster, and then define and add the
channel to it. The following script does just this. Notice that
it's only included in the page we send to the client when we are
serving to Navigator 4 or better:
<% If blnNC4 Then %>
<script LANGUAGE="JavaScript1.2">
function addChannel() {
var nc = components["netcaster"];
if (nc.active == false){
alert ('If you do not see the Add Channel dialog after
Netcaster has loaded, ' +
'come back to this page and click our "Add Netcaster
Channel" button ' +
'again to install your new channel');
nc.activate();
}
if (nc.active == true) {
import nc.getChannelObject;
import nc.addChannel;
channel = getChannelObject();
channel.url = 'http://rapid.wrox.co.uk/Default.htm';
channel.name = 'The Wrox Web-Developer Community';
channel.desc = 'The center for Web Developers, with
information and ... etc.';
channel.intervalTime = -6;
channel.absoluteTime = 4320;
channel.estCacheSize = -1;
channel.depth = 1;
channel.active = 1;
channel.mode = 'window';
channel.type = 1;
channel.cardURL = 'http://webdev.wrox.co.uk/webdev/channels/chlogo.gif';
addChannel(channel)
}
}
</script>
<% End If %>
You may be tempted just to include it in the page anyway,
knowing that it won't get executed in IE4+. The problem is that
the browser parses the script when it loads the page, even if it
is never going to be executed. This means that the window object
of the browser must support the components property, seen in the
first line of the function code. If it doesn't (and only
Navigator 4/5 does) you'll get a script error when it loads the
page.
When you load this page into Navigator 4 or Communicator 4,
you get the Add Netcaster Channel button image, which, when
clicked, starts to load Netcaster if it's not already running:
Note that, for this to work, you must have installed
Netcaster when you installed Navigator or the Netscape
Communicator package.
Once Netcaster loads, the Channel Properties dialog is
displayed. However, sometimes you'll find that the channel isn't
added automatically if Netcaster has to be started up by our
code, so we display a message to this effect. If Netcaster is
already running, the process works a lot more smoothly:
For more information about creating channels for Netcaster,
check out http://developer.netscape.com/docs/manuals/netcaster.html.
Back
| Contents |