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

JavaScript Discussion :

Chargement avec Bookmarklet


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Chargement avec Bookmarklet
    Bonjour à tous,

    Je suis un développeur web débutant et je cherche à faire un bookmarklet permettant l'édition de n'importe quelle page web en utilisant un éditeur Full HTML (Aloha Editor dans mon cas).
    Voici le code du Bookmarklet. (Je ne vois pas d'erreur dedans ^^)

    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
     
    javascript:
    (function(){
    var myHead=document.getElementsByTagName('head')[0];
     
    var scriptRequire=document.createElement('script');
    scriptRequire.type='text/javascript';
    scriptRequire.src='http://cdn.aloha-editor.org/latest/lib/require.js';
    myHead.appendChild(scriptRequire);
     
    var scriptjQuery=document.createElement('script');
    scriptjQuery.type='text/javascript';
    scriptjQuery.src='http://cdn.aloha-editor.org/latest/lib/vendor/jquery-1.7.2.js';
    myHead.appendChild(scriptjQuery);
     
    var scriptConfig=document.createElement('script');
    scriptConfig.type='text/javascript';
    scriptConfig.src='http://yourjavascript.com/15265921574/aloha-config.js';
    myHead.appendChild(scriptConfig);
    console.log("config allright");
     
    var scriptAloha = document.createElement('script');
    scriptAloha.setAttribute("data-aloha-plugins", "common/ui,
    								common/format,
    								common/table,
    								common/list,
    								common/link,
    								common/highlighteditables,
    								common/block,
    								common/undo,
    								common/contenthandler,
    								common/paste,
    								common/commands,
    								common/abbr,
    								common/image
    								");
    scriptAloha.src='http://cdn.aloha-editor.org/latest/lib/aloha.js';
    myHead.appendChild(scriptAloha);
     
    var linkAloha = document.createElement('link');
    linkAloha.type="text/css";
    linkAloha.rel="stylesheet";
    linkAloha.href='http://cdn.aloha-editor.org/latest/css/aloha.css';
    myHead.appendChild(linkAloha);
     
    var basicAlohaScript = document.createElement('script');
    basicAlohaScript.type="text/javascript";
    basicAlohaScript.textContent="Aloha.ready( function() { var $ = Aloha.jQuery; $('.editable').aloha(); });";
    myHead.appendChild(basicAlohaScript);
     
    var mainScript=document.createElement('script');
    mainScript.type='text/javascript';
    mainScript.src='http://yourjavascript.com/116841542/loadaloha.js';
    myHead.appendChild(mainScript);
    console.log("mon script chargé");
     
    var saveScript=document.createElement('script');
    saveScript.type='text/javascript';
    saveScript.src='http://yourjavascript.com/464491528/aloha-save.js';
    myHead.appendChild(saveScript);
    console.log("script de sauvegarde chargé");
     
    }
    )();

    Seulement, le premier lien (require.js) se charge de façon asynchrone et mes scripts personnels ne se chargent pas car mes fonctions dépendantes de Aloha ne peuvent pas se charger. (Mes fonctions sont en .ready et doivent se charger correctement pourtant?).
    Par contre, si j'appuie une deuxième fois, le chargement se fait correctement.
    Comment faire alors pour "dire" à mes scripts de se charger plus tard et d'attendre la fin du chargement du require.js?
    Auriez-vous des solutions à proposer ?
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    heu lire la doc de requirejs
    qui sert à charger des scripts serais peut-être pas bête...

    A+JYT

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var mainScript=document.createElement('script');mainScript.type='text/javascript';
    mainScript.src='http://yourjavascript.com/116841542/loadaloha.js';
    myHead.appendChild(mainScript);
    console.log("mon script chargé");
    Non, les scripts mettent du temps à se charger, c'est une opération asynchrone :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var mainScript=document.createElement('script');mainScript.type='text/javascript';
    mainScript.src='http://yourjavascript.com/116841542/loadaloha.js';
    myHead.appendChild(mainScript);
    mainScript.onload = function(){
      console.log("mon script chargé");
    }
    requireJS que tu charges devrait te permettre de charger plus facilement en parallèle tous tes scripts tout en préservant le bon ordre d'exécution

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    En fait, un simple timer avec une condition suffisait.. ^^
    Merci quand même pour vos réponses

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Un timer sera toujours soit trop en avance ou trop en retard par rapport au callback qui est fait pour ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Chargement avec Loader de champs avec RC
    Par Hobbi1 dans le forum SQL*Loader
    Réponses: 5
    Dernier message: 04/06/2008, 19h51
  2. [VB.NET]Fin de chargement avec WebBrowser
    Par PM_calou dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/11/2006, 14h39
  3. Page de chargement avec window.setInterval
    Par frechy dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2006, 11h34
  4. [Oracle9iR2] chargement avec SQL*LOADER
    Par piotrek30 dans le forum SQL
    Réponses: 2
    Dernier message: 16/06/2006, 11h20

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