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 :

inclusion conditionnelle d'un script javascript


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par d�faut [R�solu] inclusion conditionnelle d'un script javascript
    Bonjour !

    Je voudrais inclure un script javascript ext�rieur (une api diigo) en fonction d'une condition, ce qui fait que je ne peux pas utiliser le traditionnel :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <script type="text/javascript" src="script" ></script>
    J'ai trouv� sur le web une fonction qui fait cela :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    			function include (url) {
    				var head = document.getElementsByTagName('head')[0];
    				var script = document.createElement('script');
    				script.setAttribute('src',url);
    				script.setAttribute('type', 'text/javascript');
    				head.appendChild(script);
    			}
    			include('http://www.diigo.com/roll2/linkrolls?v=3&username=thibaudoc&l_type=0&count=10&desc=1&style=standard&title=Trace%20%26%20Internet&tags=trace');
    		</script>
    Malheureusement, elle fonctionne bien dans ma console, mais pas sur mon site !
    Pour info, mes scripts sont un peu (trop?) imbriqu�s : il s'agit d'un fichier php qui inclut du code html � l'int�rieur duquel j'utilise un script javascript, mais c'est une contrainte de mon CMS.

    Merci de l'aide,
    Thibaud.

  2. #2
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Tant que la balise head n'est pas ferm�e, tu ne peux pas la manipuler...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    window.onload = function(){include('http://www.diigo.com/roll2/linkrolls?v=3&username=thibaudoc&l_type=0&count=10&desc=1&style=standard&title=Trace%20%26%20Internet&tags=trace');
    }
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par d�faut
    Salut Bovino !
    Merci de ta r�ponse. Je n'ai malheureusement (pour moi) pas ton exp�rience, je ne vois pas ce que tu veux dire... Si je remplace la ligne include(url) par la tienne, le window.load charge bien la fonction, mais celle-ci prend toute la fen�tre, alors qu'il ne s'agissait d'afficher le r�sultat que dans la bo�te de la page d�di�e... La balise head est utilis�e par le CMS, donc je ne l'ai pas ajout�e dans mon script html, ai-je bien fait ?

  4. #4
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    La seule chose que j'ai chang�, c'est que ta fonction est appel�e au moment o� elle pourra �tre ex�cut�e sans provoquer d'erreur.
    Si ensuite le r�sultat n'est pas celui que tu souhaites, je n'y peux rien...
    Ou alors, il faut essayer d'expliquer ce que tu essayes de faire.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par d�faut
    Merci de ton aide. Comme tu me l'as demand�, je t'explique ce que j'essaies de faire.
    Sur cette page, tu peux voir ce que j'essaie de faire. Pour afficher la sidebar de droite, un fichier php s'ex�cute, nomm� sidebar.php, � l'int�rieur du CMS dokuwiki. Ce fichier est en fait un script html qui affiche des tweets (marche pas avec IE) et des signets diigo. Or, je ne veux pas que les signets s'affichent en fonction des param�tres de l'url. �a fonctionne bien pour twitter car le script d'affichage est interne, seul un objet de donn�es externe est charg�. En revanche, pour diigo, le script d'affichage est externe, donc je veux ne le lancer que si mon test se r�alise.
    Voici l'int�gralit� du script sidebar.php :
    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
    <html>
    	<script type="text/javascript" src="http://widgets.twimg.com/j/2/widget.js"></script>
    	<script type="text/javascript">
    		try {
    		// the test above can use a black list of namespaces to not show the sidebar
    		var url = String(document.location);
    		var test = url.replace(/id=trace-libre:auteur:cv/,'');
    		if (!document.all && typeof(TWTR) != 'undefined' && String(test) === String(url)) {
    			var uneDate = '24/02/2009';
    			var elem = uneDate.split('/');
    			jour = elem[0];
    			mois = elem[1];
    			annee = elem[2];
    			new TWTR.Widget({
    			  version: 2,
    			  type: 'profile',
    			  rpp: 10,
    			  interval: 6000,
    			  width: 150,
    			  height: 140,
    			  theme: {
    			    shell: {
    			      background: '#bbbbbb',
    			      color: '#000000'
    			    },
    			    tweets: {
    			      background: '#dddddd',
    			      color: '#000000',
    			      links: '#444444'
    			    }
    			  },
    			  features: {
    			    scrollbar: false,
    			    loop: false,
    			    live: false,
    			    hashtags: true,
    			    timestamp: true,
    			    avatars: false,
    			    behavior: 'all'
    			  }
    			}).render().setUser('trace_libre').start();}
    		} catch(e) {
    			alert(e)};
    	</script>
     
    	<div class="footerinc" >
    		<div id="diigo_linkroll" >
    		<a target="_blank" id="linkroll_title" href="http://www.diigo.com/user/thibaudoc">Traces</a>
     
    		<script type="text/javascript">
    			// alert("test javascript");
    			var url='http://www.diigo.com/roll2/linkrolls?v=3&username=thibaudoc&l_type=0&count=10&desc=1&style=standard&title=Trace%20%26%20Internet&tags=trace';
    			// function include (url) {
    				var head = document.getElementsByTagName('head')[0];
    				var script = document.createElement('script');
    				script.setAttribute('src',url);
    				script.setAttribute('type', 'text/javascript');
    				head.appendChild(script);
    			// }
    			// window.onload = function(){include('http://www.diigo.com/roll2/linkrolls?v=3&username=thibaudoc&l_type=0&count=10&desc=1&style=standard&title=Trace%20%26%20Internet&tags=trace');
    			//};
    		</script>
     
    		</div>
    		<br/>
    		<div id="diigo_linkroll" >
    			<a target="_blank" id="linkroll_title" href="http://www.diigo.com/user/thibaudoc">Interfaces</a>
    			<script type="text/javascript" src="http://www.diigo.com/roll2/linkrolls?v=3&username=thibaudoc&l_type=0&count=10&desc=1&style=standard&title=Trace%20%26%20Internet&tags=usability" ></script>
    		</div>
    	</div>
    </html>
    Merci,
    Thibaud.

  6. #6
    Membre confirm�
    Inscrit en
    Mars 2008
    Messages
    80
    D�tails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par d�faut
    Hello,
    Voici la r�ponse, c'est tr�s simple !

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(condition) document.write('<script type="text/javascript" src="http://www.diigo.com/roll2/linkrolls?v=3&username=thibaudoc&l_type=0&count=10&desc=1&style=standard&title=Trace%20%26%20Internet&tags=trace"><\/script>');

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Inclusions conditionnelles et/ou param�trables de scripts js
    Par j.p.mignot dans le forum G�n�ral JavaScript
    R�ponses: 0
    Dernier message: 17/01/2008, 18h41
  2. Probleme avec un script javascript->php
    Par leluis dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 23/03/2006, 15h32
  3. aide pour un script javascript
    Par speedylol dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 22/03/2006, 14h28
  4. utiliser un recordset dans un script javascript
    Par insect INC dans le forum ASP
    R�ponses: 4
    Dernier message: 10/10/2005, 19h29
  5. [PHP-JS] Php dans un script javascript
    Par nebule dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 30/11/2004, 10h38

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