Professional ASP web techniques

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

Sponsors

Win Prizes!

Shop and Save on Popular Products!

Super Phone Internet Phone

eWanted.com

AffiliateForce.com

| Home |