Si può rendere la funzione non intrusiva, cioè non scrivendo direttamente il codice nella pagina, mantendo anche la compatibilità/funzionamento con Opera.
Innanzitutto ho creato nella pagina html un elemento con id='preferiti'.
Poi basta associare all'evento onload la funzione:
codice:
window.onload=function() { preferiti(); }
function preferiti(){
	var title='ButeideBionde.it';
	var lnk='http:\/\/www.buteidebionde.it';
	var testo='[img]img/fav_site.gif[/img] Aggiungi ai Preferiti';
	var data='';
	if( window.sidebar && window.sidebar.addPanel ) {
		if (navigator.userAgent.lastIndexOf("Netscape") != -1) {data='<a href="#." onclick="window.sidebar.addPanel( \''+title+'\', \''+lnk+'\', \'\' ); return false;" title="Aggiungi ai Preferiti">'+testo+'<\/a>';}
		else{data='<a href="#." onclick="window.sidebar.addPanel( \''+title+'\', \''+lnk+'\', \'\' ); return false;" title="Aggiungi ai Preferiti">'+testo+'<\/a>';}
												}
	else if( window.opera && window.print ) {data='<a title="'+title+'" rel="sidebar" href="'+lnk+'" title="Aggiungi ai Preferiti">'+testo+'<\/a>';}
	else if( window.external && ( navigator.platform == 'Win32' || ( window.ScriptEngine && ScriptEngine().indexOf('InScript') + 1 ) ) ) {
					data='<a href="#." onclick="window.external.AddFavorite( location.href.replace( \/#.*\/, \'\' ), document.title ); return false;" title="Aggiungi ai Preferiti">'+testo+'<\/a>';}
	document.getElementById('preferiti').innerHTML=data;
}
Questa soluzione funziona su IE 5.5/6/7, Firefox 1.5/2, Opera 8/9.
In questo modo inoltre, se l'utente ha javascript disabilitato, il link "Aggiungi ai preferiti" non compare, che in questo caso non funzionerebbe.
Spero di aver colto il problema di Braco, che non voleva inserire il codice direttamente nella pagina.