Strona 1 z 1

Otwieranie obrazków w Pop-Upach + otwieranie strony w tle

: 13 wrz 2008, 13:19
autor: yawor
Witam,

Zapewne wszyscy zauważyli, że otwierając obrazek w pop-upie, otwiera się również strona imageshack w tle.

Rozwiązanie powinno być dość proste.

Do Doc:

W pliku [katalog forum]/images/rmw_jslib.js jest definicja funkcji rmw_make_pop:

Kod: Zaznacz cały

function rmw_make_pop(rmw_ref)
{
	rmw_ref.style.border = rmw_border_2;
	rmw_ref.style.width = String(rmw_max_width) + 'px';
	if (!window.opera)
	{
		rmw_ref.onclick = function()
		{
			if (!rmw_pop.closed)
			{
				rmw_pop.close();
			}
			rmw_pop = window.open('about:blank','christianfecteaudotcom',rmw_pop_features);
			rmw_pop.resizeTo(window.screen.availWidth,window.screen.availHeight);
			rmw_pop.moveTo(0,0);
			rmw_pop.focus();
			rmw_pop.location.href = this.src;
		}
	}
	else
	{
		var rmw_rand2 = String(rmw_count++);
		eval("rmw_pop" + rmw_rand2 + " = new Function(\"rmw_pop = window.open('" + rmw_ref.src + "','christianfecteaudotcom','" + rmw_pop_features + "'); if (rmw_pop) {rmw_pop.focus();}\")");
		eval("rmw_ref.onclick = rmw_pop" + rmw_rand2 + ";");
	}
	document.all ? rmw_ref.style.cursor = 'hand' : rmw_ref.style.cursor = 'pointer';
	rmw_ref.title = rmw_image_title;
	if (window.showModelessDialog)
	{
		rmw_ref.style.margin = '0px';
	}
}
Należy ją nieznacznie zmodyfikować. Należy dodać:

Kod: Zaznacz cały

return false;
zaraz po tych liniach (przed zamykającą klamrą):

Kod: Zaznacz cały

rmw_pop.resizeTo(window.screen.availWidth,window.screen.availHeight);
rmw_pop.moveTo(0,0);
rmw_pop.focus();
rmw_pop.location.href = this.src;
oraz zmienić linię:

Kod: Zaznacz cały

eval("rmw_pop" + rmw_rand2 + " = new Function(\"rmw_pop = window.open('" + rmw_ref.src + "','christianfecteaudotcom','" + rmw_pop_features + "'); if (rmw_pop) {rmw_pop.focus();}\")");
na

Kod: Zaznacz cały

eval("rmw_pop" + rmw_rand2 + " = new Function(\"rmw_pop = window.open('" + rmw_ref.src + "','christianfecteaudotcom','" + rmw_pop_features + "'); if (rmw_pop) {rmw_pop.focus(); return false;}\")");
Zmiany nie są skomplikowane (jedna linijka dodana, jedna zmieniona), więc nie powinno być problemu.

: 13 wrz 2008, 13:25
autor: Krycha
Mnie również to denerwuje.

: 13 wrz 2008, 21:27
autor: Doc
Nie bardzo rozumiem o jaki popup chodzi ?

: 13 wrz 2008, 22:56
autor: yawor
Doc, jak jest obrazek wstawiony z imageshack. Np tutaj:
viewtopic.php?t=20457

Jak klikniesz na obrazek, to on otwiera się w popupie, ale oprócz tego popupa otwiera się również nowe okno (lub tabka - w zależności od przeglądarki) ze stroną imageshack. Zmiana w kodzie javascript jest banalna, a naprawi ten problem.

: 13 wrz 2008, 23:11
autor: Doc
yawor, załączam. Zmien prosze i podrzuć mi.

: 14 wrz 2008, 00:08
autor: yawor
Poprawione. Mam nadzieję, że to wystarczy :).

: 14 wrz 2008, 13:33
autor: Doc
Podmieniłem.

: 14 wrz 2008, 16:56
autor: yawor
Super :). Sprawdziłem na IE7 i FF3 i już jest ok.

Jeżeli u kogoś się jeszcze otwiera strona imageshack w tle, to trzeba wyczyścić cache przeglądarki (plik skryptu może być ładowany z cache zamiast z serwera).

: 14 wrz 2008, 19:24
autor: Doc
yawor, dzięki.