Je dois rediriger un nouveau visiteur vers une page de démarrage créée avec un article joomla.
J'ai utilisé ce script:
<script type="text/javascript">
function redirect() {
var thecookie = readCookie('doRedirect');
if (!thecookie) {
window.location = 'prehome';
}
}
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
} else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(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 = function() {
redirect();
createCookie('doRedirect', 'true', '999');
}
</script>
J'ai copié ce script dans theme.php
du modèle.
Cela fonctionne aussi si j'ajoute le script dans un module et le publie.
Mais pendant quelques secondes, la page d'accueil est affichée avant la redirection vers la page d'accueil.
Existe-t-il un script empêchant d'afficher la page d'accueil avant la page de démarrage?
Et, y a-t-il un script à appliquer à mon .htaccess
fichier?
Il semble que votre script de redirection soit lancé sur window.onload
, et comme décrit dans this post , votre contenu est chargé après tout. C'est pourquoi vous voyez la page d'accueil un instant avant qu'un utilisateur ne soit redirigé.
Essayez de modifier votre script de cette façon et placez-le entre votre <head>
Mots clés:
<script type="text/javascript">
function createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
} else var expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(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;
}
var thecookie = readCookie('doRedirect');
if (!thecookie) {
createCookie('doRedirect', 'true', '999');
window.location = 'prehome';
}
</script>
Vous pouvez également envisager d'utiliser un menu contextuel modal, certaines extensions peuvent le charger une fois et définir un cookie afin d'éviter que les utilisateurs ne le voient à nouveau:
NoNumber Modals
NoNumber a une extension Nice popup appelée Modals , et il a une option pour afficher le popup une seule fois (je pense que vous avez besoin de la version pro pour cela):
{modal html=This modal will only show once|openOnce=1}{/modal}
Découvrez le démo ici .
Éditeur de contenu Joomla
Joomla Content Editor dispose également d’une fonction permettant d’afficher une fenêtre contextuelle une seule fois. Lisez plus ici: https://www.joomlacontenteditor.net/support/tutorials/jcemediabox/item/create-a-media-popup
<a href="/instructions.html" class="jcepopup autopopup-single" type="text/html" id="autopopup"></a>