Je ne comprends pas pourquoi je reçois un message d'erreur en utilisant la méthode de sous-chaîne pour déclarer une variable.
Je veux utiliser la première partie de l'URL dans une comparaison.
Site: http://www.elizabet.nl/wordpress
C'est la partie qui ne va pas:
var currentLocation = document.location,
muzLoc = currentLocation.substring(0,45),
prodLoc = currentLocation.substring(0,48),
techLoc = currentLocation.substring(0,47);
L'erreur: "CurrentLocation.substring n'est pas une fonction"
Mais cette partie du code convient:
var URL = $(this).attr("href").substring(2) + ' #main';
Tout le code:
jQuery(function($){
var siteURL = "http://" + top.location.Host.toString() + "/wordpress", // Declareren van URL van de website.
URL = '', // Declareren van een URL, welke dan ook.
currentLocation = '',
muzLoc = '',
prodLoc = '',
techLoc = '',
allLinks = $('a[href^=' + siteURL + ']' ), // Declareren van alle menu-links. Het teken ^ betekent 'begint met'.
otherLinks = $('a[href^=' + siteURL + "/wp-content" + ']'),
siteLinks = $(allLinks).not(otherLinks),
mainDiv = $("#content"),
hash = window.location.hash,
muziekURL = "http://www.elizabet.nl/wordpress/#/muziek_pf/",
productieURL = "http://www.elizabet.nl/wordpress/#/productie_pf/",
techniekURL = "http://www.elizabet.nl/wordpress/#/techniek_pf/";
if (hash) {
hash = "/wordpress" + hash.substring(1); // substring methode haalt karakters van je string af. In dit geval de #, vanwege de offset=1.
URL = hash;
$(mainDiv).load(URL);
}
function pageLoad() {
var allLinks = $('a[href^=' + siteURL + ']' ),
otherLinks = $('a[href^=' + siteURL + "/wp-content" + ']'),
siteLinks = $(allLinks).not(otherLinks);
siteLinks.each(function() {
$(this).attr("href", "#" + this.pathname.substring(10));
})
.click(function() {
var URL = $(this).attr("href").substring(2) + ' #main';
$(mainDiv).load(URL, function(){
var currentLocation = document.location,
muzLoc = currentLocation.substring(0,45),
prodLoc = currentLocation.substring(0,48),
techLoc = currentLocation.substring(0,47);
if (muzLoc == muziekURL) {
$("body").animate({ backgroundColor: "#151C07"}, 500);
$(".nieuws").animate({ borderBottomColor: "#99CC33"}, 500);
$("#stripe_trans").add("#header").animate({ backgroundColor: "#99CC33"}, 500);
$("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500);
$("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500);
$("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500);
$("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500);
}
else if (prodLoc == productieURL) {
$("body").animate({ backgroundColor: "#251B02"}, 500);
$(".nieuws").animate({ borderBottomColor: "#FFCC33"}, 500);
$("#stripe_trans").add("#header").animate({ backgroundColor: "#FFCC33"}, 500);
$("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500);
$("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500);
$("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500);
$("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500);
}
else if (techLoc == techniekURL) {
$("body").animate({ backgroundColor: "#181223"}, 500);
$(".nieuws").animate({ borderBottomColor: "#B39BE4"}, 500);
$("#stripe_trans").add("#header").animate({ backgroundColor: "#B39BE4"}, 500);
$("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500);
$("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500);
$("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500);
$("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500);
}
else {
$("body").animate({ backgroundColor: "#202020"}, 500);
$(".nieuws").animate({ borderBottomColor: "#FFF"}, 500);
$("#stripe_trans").add("#header").animate({ backgroundColor: "#FFF"}, 500);
$("#tabtekst_2").stop().animate({ backgroundColor: "#6B8E23" }, 500);
$("#tab_2").add("a.green").stop().animate({ color: "#6B8E23" }, 500);
$("#tabtekst_3").stop().animate({ backgroundColor: "#B8860B" }, 500);
$("#tab_3").add("a.gold").stop().animate({ color: "#B8860B" }, 500);
$("#tabtekst_4").stop().animate({ backgroundColor: "#765AAD" }, 500);
$("#tab_4").add("a.purple").stop().animate({ color: "#765AAD" }, 500);
}
pageLoad();
});
});
}
pageLoad();
}); // End document ready function.
document.location
est un objet, pas une chaîne. Il renvoie (par défaut) le chemin d'accès complet, mais contient en réalité plus d'informations que cela.
Raccourci pour la solution: document.location.toString().substring(2,3);
Ou utilisez document.location.href
ou window.location.href
vous pouvez aussi citer des chaînes
''+document.location+''.substring(2,3);
TypeError: hex.substring n'est pas une fonction
Résolu:
tu as besoin de faire
hex = '0x4a6f7264616e0000000000000000000000000000000000000000000000000000'
//because you probably only coppied the hexcode, you need to copy the quotes too
Vous pouvez utiliser substr
par exemple:
new Date().getFullYear().toString().substr(-2)