IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SharePoint .NET Discussion :

le script ne s'execute qu'en modification de page et non en visualisation (SP-2013)


Sujet :

SharePoint .NET

  1. #1
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut le script ne s'execute qu'en modification de page et non en visualisation (SP-2013)
    Bonjour,

    sur une page, j'ai :
    1. un éditeur de script
    2. et une visualisation de page


    Quand je rentre en modification de page, mon script s'exécute correctement (remplacement de l'url de la visualisation de page), affichage de l'alerte 1..
    Par contre, quand je suis en visualisation de page, mon script ne s'exécute pas, et je reste sur l'url de la visualisation de page défini par défaut.


    mon code de l'éditeur de script est le suivant :
    Code : 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    <script>
    
    /*****************************/
    /* Début de la configuration */
    /*****************************/
    
    // Site Web où est situé la liste des paramètres utilisateurs
    var siteUrl = '/sites/partage/divers/';
    // Nom du champ à obtenir.
    var targetFieldName = 'Code_x0020_client';
    // Nom de la liste contenant les paramètres utilisateurs.
    var listName = 'Paramètres utilisateurs';
    // Nom du champ utilisateur de la liste des paramètres utilisateurs
    var userFieldName = 'Utilisateur';
    // Activation/désactivation du bouton d'annulation de chargement de l'iframe.
    var canBeCanceled = false;
    // Url de l'Iframe.
    // Variables disponibles :
    // {AccountNumber} : Code client de l'utilisateur connecté.
    // {Language} : Langage du site au format ISO 639-1 (en, fr, es).
    var iframeUrl = 'https://roset.sharepoint.com/sites/partage/divers/GetToPostProxy.html?action=https://menugcw.lrc-web.com/prospects/autologon&username={AccountNumber}&lang={Language}';
    // ID de l'IFrame
    var iframeID = 'MSOPageViewerWebPart_WebPartWPQ2';
    // Language par défaut au format ISO 639-1. Utilisé si la langue du site n'a pas pu être déterminée.
    var defaultLanguage = 'fr';
    
    /*****************************/
    /*  Fin de la configuration  */
    /*****************************/
    
    var waitDialogBox = null;
    var doIframeLoading = true;
    
    // Charge l'url de l'iframe à partir des paramètres de l'utilisateur
    function loadIFrameRules() {
        var clientContext = new SP.ClientContext(siteUrl);
        var oList = clientContext.get_web().get_lists().getByTitle(listName);
    
        // Construction de la requête CAML chargeant l'enregistrement correspondant à l'utilisateur courant.
        var camlQuery = new SP.CamlQuery();
        camlQuery.set_viewXml('<View><Query><Where><Eq><FieldRef Name=\'' + userFieldName + '\'/>' + 
            '<Value Type=\'Integer\'><UserID/></Value></Eq></Where></Query><RowLimit>1</RowLimit></View>');
        this.collListItem = oList.getItems(camlQuery);
    
        clientContext.load(collListItem);
    
        clientContext.executeQueryAsync(Function.createDelegate(this, this.onIFrameRulesLoaded), Function.createDelegate(this, this.onIFrameRulesLoadingError));        
    }
    
    // Annule la redirection
    function cancelLoading() {
        doIframeLoading = false;
    }
    
    // Gestionaire d'évènement: Appelé lorsque l'obtention des paramètres de l'utilisateur réussi.
    function onIFrameRulesLoaded(sender, args) {
        var listItemInfo = '';
    
        var listItemEnumerator = collListItem.getEnumerator();
    
        if (listItemEnumerator.moveNext())
        {
            var oListItem = listItemEnumerator.get_current();
            var accountNumber = oListItem.get_item(targetFieldName);
            
            var url = buildUrl(accountNumber);
            
            if (doIframeLoading)
                document.getElementById(iframeID).src = url; // Application de l'url
    
            waitDialogBox.close();
        }
        else
        {
            // No user parameter record
            waitDialogBox.close();
        }
    }
    
    // Construit l'url de l'iframe.
    // La variable de configuration iframeUrl est utilisé
    function buildUrl(accountNumber)
    {
        if (typeof(accountNumber) == 'undefined')
            throw 'Code client non spécifié';
    
        var language = defaultLanguage;
        
        var url = iframeUrl.replace('{AccountNumber}', accountNumber);
        url = url.replace('{Language}', language);
        
        return url;
    }
    
    // Gestionnaire d'évènement: Appelé lorsque l'obtention des paramètres de l'utilisateur échoue.
    function onIFrameRulesLoadingError(sender, args) {
        waitDialogBox.close();
        //alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }
    alert('1');
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () { ExecuteOrDelayUntilScriptLoaded(loadIFrameRules, 'sp.js'); } );
    </script>

    dans ma master page, j'ai bien la référence à ceci
    <SharePoint:ScriptLink ID="ScriptLink21" Name="sp.js" runat="server" OnDemand="false" LoadAfterUI="true" Localizable="false" />

    si quelqu'un à une idée (ou plusieurs), car là, je tourne en rond, et heureusement que ma chaise à des roulettes

  2. #2
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Lorsque tu es en debug (F12) sur ta page, est ce que tu arrives à passer dans ton code ?
    Est ce que la console de ton navigateur contient des messages ?

    Je te conseil de supprimer le paramètre LoadAfterUI="true", il n'a que peut d'intérêt dans ton cas.
    Puis essaye la méthode ExecuteOrDelayUntilScriptLoaded(loadIFrameRules, 'sp.js') seule, sans le SP.SOD...

    Il existe sans doute une erreur dans ta page, ce qui bloque l'exécution de ton script...
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  3. #3
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    Merci pour la réponse.

    j'ai simplifié mon code avec celui ci-dessous, pour limiter les erreurs de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script>
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () { ExecuteOrDelayUntilScriptLoaded(alert('111'), 'sp.js'); } );
    </script>
    cela dit, c'est toujours pareil, message d'alerte en modification, et rien en visualisation.

    Pour le mode débug (F12), je n'ai pas de message d'erreur :
    Nom : Capture d’écran 2015-02-03 à 15.18.57.png
Affichages : 550
Taille : 293,4 Ko

    Si vous avez une autre idée ? moi, la lampe est éteinte ...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    A tout hasard, ne manquerait-il pas une étape de Check-in et/ou Publishing une fois l'édition de votre page finie ? Ou encore vérifiez si vous modifiez bien la version publique de la page en édition (les pages sont en partie personnalisables par les utilisateurs)

  5. #5
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    heuu, je fais juste une sauvegarde de ma page, que j'essaye de visualiser ensuite ? Il manquerait quelque chose ?

  6. #6
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Tu es sur que la webpart n'est pas cachée ?
    Ajoutes-tu la webpart via l'interface graphique ou par code/provisionning ?
    Est-ce que tu as le même comportement sur une autre page ?

    Essayes de supprimer/rajouter à nouveau cette webpart pour voir si le problème n'est pas lié à sa configuration...
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  7. #7
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    Tu es sur que la webpart n'est pas cachée ?
    Je la vois bien

    Tu
    Ajoutes-tu la webpart via l'interface graphique ou par code/provisionning ?

    ajoutée via l'interface graphique

    Tu
    Est-ce que tu as le même comportement sur une autre page ?

    oui

    Tu
    Essayes de supprimer/rajouter à nouveau cette webpart pour voir si le problème n'est pas lié à sa configuration...

    cela ne change rien ....

  8. #8
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Dans la capture d'écran (F12) tu montres les ressources, mais pas la console JavaScript. Peux-tu vérifier ce point ?
    Si tu enlèves le code et que tu ne mets qu'une alerte dans ton script, est ce que cela fonctionne ?
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  9. #9
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    j'ai modifié le script avec le code ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script>
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () { ExecuteOrDelayUntilScriptLoaded(alert('111'), 'sp.js'); } );
    </script>
    je n'ai ni message, ni erreur (F12) comme indiqué sur image ci_après.
    Nom : Capture d’écran 2015-02-05 à 11.26.48.png
Affichages : 484
Taille : 137,1 Ko

    si je clique sur la page pour la modifié, j'ai l'image ci-dessous
    Nom : Capture d’écran 2015-02-05 à 11.27.25.png
Affichages : 448
Taille : 219,7 Ko

    par contre en éditionNom : Capture d’écran 2015-02-05 à 11.27.45.png
Affichages : 497
Taille : 172,0 Ko, j'ai une erreur, est-ce normale ?

  10. #10
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par WBO Voir le message
    j'ai une erreur, est-ce normale ?
    Cela arrive, il ne faut pas t'inquiéter pour ça. Par contre je ne suis pas d'avoir bien saisi, ton code fonctionne en mode display avec une simple alerte ?
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  11. #11
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    Cela arrive, il ne faut pas t'inquiéter pour ça. Par contre je ne suis pas d'avoir bien saisi, ton code fonctionne en mode display avec une simple alerte ?

    que veux tu dire par mode "display" ?

    le code ne fonctionne pas si je suis en visualisation, par conter, si je rentre sur la page pour la modifier, le message d'alerte apparait.

  12. #12
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    "display" = visualisation.

    J'ai peut être une piste, vérifie si le fichier "sp.js" est chargé ou pas dans ta page.
    Essaye de ne mettre que alert('111'); sans le SP.SOD.executeFunc... Quel est le résultat ?
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  13. #13
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    j'ai donc essayé avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script>
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', alert('111'));
    </script>
    mais c'est toujours le même comportement, à savoir :
    pas de message en visualisation, et message en modification de page.

  14. #14
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Essaye plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <script>
    alert('111');
    </script>
    Si cela fonctionne c'est que l'appel ne fonctionne pas. Si cela ne fonctionne toujours pas, alors y'a un soucis un peu plus compliqué...
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  15. #15
    WBO
    WBO est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 78
    Points : 57
    Points
    57
    Par défaut
    toujours pareil, je pense que le verdict est donc :
    Si cela ne fonctionne toujours pas, alors y'a un soucis un peu plus compliqué...
    c'est donc pas bon

  16. #16
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut

    Quels sont tes droits sur le site ? Est ce que tu utilises le publishing ? Quel type de page tu utilises ?
    As-tu essayé d'utiliser une WebPart éditeur de contenu ?
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bien que cette discussions soit ancienne, je viens de trouver une solution à ce problème.
    Il faut spécifier "type="text/javascript" dans la référence à ton script.
    Exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="ton script"></script>
    Cela ne marchera qu'en mode modification.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="ton script"></script>
    Cela marchera en mode visualisation !

Discussions similaires

  1. recuperer pid d'un script batch en execution
    Par grandtix dans le forum Windows XP
    Réponses: 2
    Dernier message: 24/07/2007, 18h18
  2. Script long à l'execution
    Par jt-tronix dans le forum Delphi
    Réponses: 11
    Dernier message: 27/12/2006, 16h41
  3. Réponses: 5
    Dernier message: 20/07/2006, 01h17
  4. Réponses: 4
    Dernier message: 06/06/2006, 12h27
  5. Réponses: 4
    Dernier message: 21/04/2006, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo