Chalute !

Je cale sur un petit pouint.

Une feuille de style ne servant que pour le fond d'écran du site, que l'on peut changer via un panneau d'admin.

La feuille de style est un fichier php qui va chercher le nom de fichier image choisi :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
...
$query = "SELECT * FROM config";
...
$bg = "$background_image?".filemtime("./img/backgrounds/$background_image");
?>
html {
background: url(./img/backgrounds/<? echo $bg; ?>) no-repeat center center fixed; 
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

Dans la page du site coté visiteur, un simple
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
<link rel="stylesheet" id="bgstyle" type="text/css" href="style_v3_bg.php">

Je voudrais que lorsque le visiteur revienne sur la fenêtre du site, la feuille de style soit rechargée pour prendre en compte le changement de fond d'écran sans recharger la page. C’est je l'admets un peu gadget mais la méthode pourrait également me servir pour d'autres projets.

J'ai tenté plusieurs scripts mais sans résultat
J'arrive à faire charger la feuille de style via jquery (j'enlève bien sur la link ci dessus pour ne pas fausser le test) lorsque la fenêtre a le focus, mais pas moyen de la recharger.

Voici le dernier script en date :
Code JS : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
$(window).on("blur focus", function(e) {
    var prevType = $(this).data("prevType");
    if (prevType != e.type) {   //  reduce double fire issues
        switch (e.type) {
            case "blur":
                $('div').text("Blured");
                break;
            case "focus":
                $('div').text("Focused");
				// document.getElementById("bgstyle").Window.location.reload(true);
				$('#bgstyle').replaceWith('<link id="css" rel="stylesheet" href="style_v3_bg.php"></link>');
                break;
        }
    }
    $(this).data("prevType", e.type);
})
</script>
Évidement, la 'div' n'est là que pour indique visuellement si focus ou non , à terme ça ne sera plus là.
La div témoin indique bien "Blur" ou "Focused" selon que la fenêtre est active ou non, donc ça c'est bon, mais le fond d'écran n'ets pas actualisé.

Bien entendu, le fichier de feuille de style n'étant pas modifié en lui même, jouer avec sa date ne changera rien

Du coup, je sais pas comment faire.

Une tite idée serait la bienviendue

Merkouin