Cel:

Na wielu stronach można znaleźć linki, które dodają aktualnie oglądaną stronę do ulubionych lub też ustawiają ją jako stronę startową. Niestety, nie każda przeglądarka pozwala na wykonanie takiej akcji, a dodatkowo nie w każdej są one dozwolone.

Poniżej zaprezentuje dwa skrypty do wykonani w/w operacji działające w trzech najważniejszych przeglądarkach (Firefox, Opera oraz Internet Explorer).

Końcowy efekt:

Ustaw jako stronę startową Dodaj do ulubionych

Kod dla przykładu:

	<a href="#" onclick="homepage(this); return false">Ustaw jako stronę startową</a>
	<a href="http://anfo.pl/blog/bookmark-homepage/index.php" onclick="return ulubione(this);">Dodaj do ulubionych</a>

JavaScript dla tej strony:

function ulubione(obj) {
	title = document.title;
	url = document.location.toString();
	if (window.sidebar) {
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) {
		window.external.AddFavorite(url, title);
	}
	else if(window.opera && window.print) {
		/**
		 * Opera wymaga ustawienia parametru REL dla linku
		 * Firefox także wspiera takie rozwiązanie, jednak w typ wypadku
		 * spowodowało by to wywołanie 2 okienek dodania - jednego pustego
		 * dlatego ustawiamy parametr poprzez JavaScript
		 */
		obj.rel = 'sidebar';
		return true;
	}
	return false;
}

function homepage(obj) {
	if(navigator.userAgent.indexOf('MSIE') > -1) {
		obj.style.behavior='url(#default#homepage)';
		obj.setHomePage(document.location);
	}
	else if(window.opera && window.print) {
		alert('Twoja przeglądarka nie pozwala na zmianę strony domowej. By zrobić to ręcznie, kliknij w menu przeglądarki "Narzędzia" > "Ustawienia" > "Użyj bieżącej"');
	}
	else {
		alert('Twoja przeglądarka nie pozwala na zmianę strony domowej. By zrobić to ręcznie, przeciągnij link "Ustaw jako stronę domową" na przycisk "Strona domowa" w pasku nawigacji przeglądarki.');
	}
}

Uwagi:

  1. skrypt może nie zadziałać dla strony uruchamianych z dysku (file:/// etc.) ponieważ przynajmniej Firefox używa detekcji typu adresu (http/https) co wywołuje bład w takim wypadku

O autorze:

Zaprezentowany powyżej skrypt / styl CSS lub inna informacja pochodzi z blogu EpicWeb.pl i powstał na podstawie przemyśleń własnych autora lub pod wpływem artykułów z innych źródeł (podane zostało wtedy ono na blogu w odpowiednim poście). Jeżeli nie zaznaczono inaczej, udostępniany jest na zasadach CC-BY-SA 2.5.

Autorem jest Bartosz "BTM" Szczeciński - programista PHP, MySQL, lubiący eksperymentować ze stylami CSS, JavaScript oraz szeroko pojętą tematyką aplikacji internetowych. Możesz skontaktować się ze mną poprzez email btm@anfo.pl lub Jabbera btm@jabber.aster.pl