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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    WBO
    WBO est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    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 : 38
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    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 confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    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 : 600
Taille : 293,4 Ko

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

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    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 confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    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 : 38
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    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 confirmé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 79
    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 ....

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