Sprawdzanie tresci linku

0

Siemanko. Mam taki problem, że nie potrafię wywołać ustawienia tła (przy ładowaniu strony) w jQuery jesli po domenie tresc jest równa np. /anything.

Próbowałem zrobic to w taki sposób:

var pathname = window.location.pathname;

$(function() {
	if (pathname == '/anything/'){
		$('body').css('background', 'url(img/bg.jpg)!important');
	}
	else{
		$('body').css('background', 'url(img/bg2.jpg)!important');
	}
});

lecz nic z tego. Poszukalem trochę w google i znalazłem takie rozwiązanie:
[code]
$(function() {
if (document.location.pathname.indexOf("/anything/") == 0) {
$('body').css('background', 'url(bg1.jpg)!important');
}
else{
$('body').css('background', 'url(bg2.jpg)!important');
}
});
[/code]
lecz niestety tez nie chce dzialac. Nie mam pojęcia co robię źle. Prosiłbym o pomoc.

Podobne fiddle: https://jsfiddle.net/fzy59wtt/1/

0

Poprawiam treść drugiego znacznika code:


$(function() {
	if (pathname == '/project/radio/'){
		$('body').css('background', 'url(img/bg1.jpg)!important');
	}
	else{
		$('body').css('background', 'url(img/bg2.jpg)!important');
	}
});

Jakiś błąd się wkradł.

0

Dodam, że rozwiązanie tego problemu za pomocą czystego js działa prawidłowo. Mam na myśli poniższy kod

[code]
var pathname = window.location.pathname;
var body = document.getElementsByTagName('body')[0];

if (pathname == '/anything/'){
body.style.backgroundImage = 'url(/img/bg1.jpg)';
}
else{
body.style.backgroundImage = 'url(/img/bg2.jpg)';
}

[/code]

0

[code]

var pathname = window.location.pathname;
var body = document.getElementsByTagName('body')[0];

if (pathname == '/anything/'){
body.style.backgroundImage = 'url(/img/bg1.jpg)';
}
else{
body.style.backgroundImage = 'url(/img/bg2.jpg)';
}

[/code]

Ponownie poprawka ze wzgledu na znacznik code...

0

var pathname = window.location.pathname;
var body = document.getElementsByTagName('body')[0];

if (pathname == '/anything/'){
    body.style.backgroundImage = 'url(/img/bg1.jpg)';
}
else{
    body.style.backgroundImage = 'url(/img/bg2.jpg)';
}

Prosiłbym o usunięcie niepoprawnych postów. Miesza mi się tutejszy znacznik code z bbcode i odruchowo wstawiam nawiasy kwadratowe zamiast znaku mniejszosci i wiekszosci (nie wiem jak to poprawnie nazwac).

0

A jesteś pewny, że w zmiennej pathname znajdują się prawidłowe dane może spróbuj coś takiego

var pathname = window.location.pathname;
document.write(pathname);
$(function(){
if (pathname == '/test/jquery.htm'){
$('body').css('background', '#FFCCDD');
}

});

Zobacz co się będzie znajdować w zmiennej pathname ustaw w instrukcji warunkowej to co się znajduje w zmiennej pathname.

0
pol90 napisał(a):

A jesteś pewny, że w zmiennej pathname znajdują się prawidłowe dane może spróbuj coś takiego

var pathname = window.location.pathname;
document.write(pathname);
$(function(){
if (pathname == '/test/jquery.htm'){
$('body').css('background', '#FFCCDD');
}

});

Zobacz co się będzie znajdować w zmiennej pathname ustaw w instrukcji warunkowej to co się znajduje w zmiennej pathname.

Plik z kodem dołączam u siebie w dwóch róznych plikach. W jednym pathname jest równy temu co podałem w kodzie (document.write(pathname) takze go zwraca), aczkolwiek nie działa ani to co jest w if, ani to co jest w else. W drugim pliku to samo. Wstawiłem Twój kod do mojego pliku z kodem js, dodałem else i dodaję grafike zamiast obrazu i wszystko działa poprawnie. Nie mam pojęcia co nie działa w moim kodzie, no ale cóż. Dzięki za pomoc. Przy wykorzystaniu twojego kodu lub czystego javascript działa bez zarzutów, dzięki jeszcze raz!

1 użytkowników online, w tym zalogowanych: 0, gości: 1