Mam problem ze skryptem, który ma tworzyć ciasteczko, gdy ktoś wyłączy muzykę (buttonem) i w zależności od tego czy ciasteczko istnieje dodawać do html kod lub go usuwać.
Właściwie to próbowałem przerobić skrypt informujący o używaniu ciasteczek, bo ma podobne właściwości do oczekiwanych (znika po naciśnięciu przycisku).
function WHCreateCookie(name, value, days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = "; expires=" + date.toGMTString();
document.cookie = name+"="+value+expires+"; path=/";
}
function WHReadCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
window.onload = WHCheckCookies;
function WHCheckCookies() {
if(WHReadCookie('cookies_accepted') != 'T') {
var message_container = document.createElement('div');
message_container.id = 'cookies-message-container';
var html_code = '<div id="muzyka"><audio controls autoplay><source src="muzyka.mp3" type="audio/mpeg"></audio></div>';
message_container.innerHTML = html_code;
document.body.appendChild(message_container);
}
}
function WHCloseCookiesWindow() {
WHCreateCookie('cookies_accepted', 'T', 365);
document.getElementById('cookies-message-container').removeChild(document.getElementById('cookies-message'));
}
Dodałem twój skrypt do sekcji head w znaczniku <script type=“text/javascript”></script>,a przycisk do mojego menu. Niestety po włączeniu strony muzyka się nie włącza (w kodzie nie ma dodanego odtwarzania muzyki). Wyczyściłem ciasteczka, ale to nie pomogło. I przy okazji co trzeba zrobić, by po ponownym naciśnięciu przycisku muzyka zaczeła znowu lecieć?
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function WHCreateCookie(name, value, days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
var expires = "; expires=" + date.toGMTString();
document.cookie = name+"="+value+expires+"; path=/";
}
function WHReadCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
window.onload = WHCheckCookies;
function WHCheckCookies() {
var container = document.createElement('div');
container.id = 'musiccontainer';
var html_code = '<audio controls autoplay id="muzyka"><source src="muzyka.mp3" type="audio/mpeg"></audio>';
container.innerHTML = html_code;
document.body.appendChild(container);
if(WHReadCookie('music') != 'T') {
document.getElementById('muzyka').pause();
ReplaceWith(document.getElementById('przycisk'), 'Muzyka on');
} else {
document.getElementById('muzyka').play();
}
}
function ReplaceWith(object, value) {
object.value = value;
}
function ChangeMusicStateMusic() {
if(WHReadCookie('music') == 'F') {
WHCreateCookie('music', 'T', 365);
document.getElementById('muzyka').play();
ReplaceWith(document.getElementById('przycisk'), 'Muzyka off');
} else {
ReplaceWith(document.getElementById('przycisk'), 'Muzyka on');
document.getElementById('muzyka').pause();
}
}
</script>
</head>
<body>
<button id="przycisk" onclick="BlockMusic()" value="Muzyka off" />
</body>
</html>
Sorry, że znowu piszę ale męczę się z tym kilka godzin i nic nie działa. Powyżej jest cały kod html. Błagam niech ktoś to sprawdzi i wstawi działający kod, bo ja naprawdę nie wiem co robię źle. Wydaje mi się, że w buttonie w onclick powinno być ChangeMusicStateMusic(), ale jak to zmieniłem to i tak nie działa.