Bonjour à tous, je suis desespéré car personne ne semble avoir la réponse à ma question …snif snif
J’ai un répéteur avec, sur chaque item, un bouton permettant d’ouvrir un lien vers un PDF. Cela marche très bien et , par défaut, le PDF s’ouvre dans un nouvel onglet. Jusque là tout va bien; sauf que moi je dois faire un petit traitement lors du clic sur le bouton et seulement après ce traitement je dois ouvrir le PDF dans un nouvel onglet, j’utilise pour cela le code :
wixLocationFrontend.to(MonUrl); Le lien s’ouvre mais toujours dans la même fenêtre !?
Visiblement wixLocation ne peut pas recevoir de paramètre genre target=“_blank” !? du coup comment faire ?
C’est quand même dingue qu’il n’y ait pas une instrucion wix permettant d’ouvrir une URL dans un nouval onglet alors que c’est tellement simple en html : Ouvrir le lien dans une nouvelle fenêtre
Merci pour votre aide, je désespère.
Bonjour comment allez-vous? Si le PDF est un document connecté au CMS, alors le fichier sera ajouté au champ du document. Si tel est le cas, vous n’avez pas besoin de Code, je pense. il ne vous restera plus qu’à connecter le bouton au champ du document et le fichier s’ouvrira. dans les paramètres du bouton, vous pouvez choisir si vous souhaitez que le lien du bouton s’ouvre sur une nouvelle page ou non. s’il vous plaît laissez-moi savoir si cela a aidé.
Merci pour votre réponse, je sais que je peux lier le bouton au champ de ma collection mais je veux le faire par code car je fais un traitement sur les données avant d’ouvrir le lien. (mon code de mise à jour ci-dessous).
Au passage : la mise à jour fonctionne en mode “execution du code” mais pas sur le site publié ?
Merci beaucoup pour votre aide
import wixData from 'wix-data';
import wixLocation from 'wix-location';
$w.onReady(async function () {
export function btnLien_click(event) {
// ⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂
// Recherche des données de l'élément en cours
// ⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂
const data = $w("#MonRepeteur").data;
const contextData = event.context;
let enregistrement = data.find(item => item._id === contextData.itemId);
// ⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂
// Mise à jour des données
// ⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂⌂
enregistrement.cpt = enregistrement.cpt+1; // J'incrémente le compteur
wixData.update('Interlignes_numerique', enregistrement)
.then((result) => {
console.log("Mise à jour réussie : ", result);
})
.catch((error) => {
console.error("Erreur lors de la mise à jour : ", error);
});
enregistrement.refresh;
$w("#dataset1").refresh();
Essaye ça. Cela pourrait ne pas fonctionner.
$w.onReady(function () {
// Replace 'myRepeater' with the ID of your repeater
$w("#myRepeater").onItemReady(($item, itemData, index) => {
// Replace 'linkField' with the field key of the field containing the URL
const linkField = "linkField";
const url = itemData[linkField];
// Replace 'myButton' with the ID of your button
const button = $item("#myButton");
button.link = url;
button.target = "_blank";
});
});