Mettre une image dans un javascript

Fermé
jyronb Messages postés 2 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 9 juin 2012 - Modifié par jyronb le 5/06/2012 à 21:23
jyronb Messages postés 2 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 9 juin 2012 - 9 juin 2012 à 16:14
Bonjour tlm,

voilà j'ai un petit problème ,je ne suis pas un expert en javascript,et c'est pour cette raison que je fais appel à vos connaissances.

Mon problème est le suivant :

j'ai récupéré un script javascript pour afficher les cotations des bourses en javascript et je souhaiterais afficher une image "Up" ou "Down" en fonction de la variation des taux.Donc il me faut bien sûr une condition qui compare et affiche la bonne image.

Voilà le script en question :

<script> 
 window.addEvent('domready', function(){ 
  
  new Request.Stocks({ 
   stocks: ['ABBN.VX', 'ATLN.VX', 'ADEN.VX', 'CSGN.VX', 'HOLN.VX', 'BAER.VX', 'LONN.VX', 'NESN.VX', 'NOVN.VX', 'CFR.VX', 'ROG.VX', 'SGSN.VX', 'UHR.VX', 'RUKN.VX', 'SCMN.VX', 'SYNN.VX', 'SYST.VX', 'RIGN.VX', 'UBSN.VX', 'ZURN.VX'], 
   onComplete: function(yahoo){ 
    var result = ''; 
    Array.each(Array.from(yahoo.query.results.quote), function(quote){ 
     result += '<h3>{Name}</h3><p>{Ask} ChangeinPercent: {ChangeinPercent} Change: {Change}</p>'.substitute(quote); 
    }, this); 
     
    $('stocks').set('html', result); 
   }, 
   onRequest: function(script){ 
    $('stocks').set('text', 'Loading...'); 
   } 
  }).send(); 

 </script> 

Ce que je souhaite ,c'est qu'il compare le {Change} ,donc la variation;et si elle est négative,alors afficher une flèche rouge vers le bas comme image et sinon afficher une flèche verte vers le haut.

J'ai essayé ceci juste après le {Change} dans la fonction mais comme je ne suis pas un expert ,cela ne fonctionne pas :

if ({Change}<0){

document.write ('<img src="down.gif"/>');

}
else {

document.write ('<img src="down.gif"/>');
}

En vous remerciant à tous pour vos lumières...

A voir également:

2 réponses

acid3max Messages postés 37 Date d'inscription jeudi 7 juin 2012 Statut Membre Dernière intervention 8 juin 2012 5
7 juin 2012 à 19:28
Affiche ta variable "Change" pour voir ce qu'elle contient sinon c'est quoi ses {} autour de ta variable ????

alert(Change);

document.write(Change);

sa t'affiche quelque chose ?
0
jyronb Messages postés 2 Date d'inscription mardi 5 juin 2012 Statut Membre Dernière intervention 9 juin 2012
9 juin 2012 à 16:14
Bonjour,

déjà en premier lieu ,merci pour le coup de main parce que je galère.

Ensuite pour répondre à ta question ,j'ai essayé de copier le code que tu m'as donné dans la barre d'adresse pour essayer et là j'obtiens une page d'erreur.

Après je l'ai inséré dans la partie du script que j'ai mis dans mon premier post juste avant la fermeture de la balise </script> et là je n'ai pas de page d'erreur mais je n'ai pas de changement particulier.

Et finalement je l'ai copié dans la partie <body> de ma page avec les balises d'ouverture et de fermeture de <script></script> et là non plus je n'obtiens pas de page d'erreur ,mais je ne vois pas non de changement précis ,ni d'infos supplémentaires.

Je n'ai pas fourni toutes l'infos ,ce que je vais faire maintenant car il y a en effet 2 script js et 1 xml et 1 page html qui contient du js également.

Donc je vais copier coller le code des différents éléments de la page pour t'aider à mieux comprendre le code.

Donc les codes sont les suivants :

Voilà la page html :

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>Request.Stocks</title>
	<style>
		#custom {
			position: fixed;
			right: 2em;
			top: 0;
		}
	</style>
	
	<script src="mootools-core-1.3-full-nocompat.js"></script>
	<script src="mootools-more-1.3.js"></script>
	<script src="../Source/Request.Stocks.js"></script>
	<script src="../Source/Request.Stocks.element.js"></script>
	
	<script>
	window.addEvent('domready', function(){
	
		new Request.Stocks({
			stocks: ['ABBN.VX', 'ATLN.VX', 'ADEN.VX', 'CSGN.VX', 'HOLN.VX', 'BAER.VX', 'LONN.VX', 'NESN.VX', 'NOVN.VX', 'CFR.VX', 'ROG.VX', 'SGSN.VX', 'UHR.VX', 'RUKN.VX', 'SCMN.VX', 'SYNN.VX', 'SYST.VX', 'RIGN.VX', 'UBSN.VX', 'ZURN.VX'],
			onComplete: function(yahoo){
				var result = '';
				Array.each(Array.from(yahoo.query.results.quote), function(quote){
					result += '<h3>{Name}</h3><p>{Ask} ChangeinPercent: {ChangeinPercent} Change: {Change}</p>'.substitute(quote);
				}, this);
				
				$('stocks').set('html', result);
			},
			onRequest: function(script){
				$('stocks').set('text', 'Loading...');
			}
		}).send();
		
		// Request.Stocks.element.js
		$('custom').loadStocks({
			stocks: '^SSMI'
		});
		
	});


</script>

</head>
<body>
<script>
alert(Change);

document.write(Change);
</script>
<h1>Request.Stocks</h1>
<div id="stocks"></div>
<div id="custom"></div>



<p>github: <a href="https://github.com/eerne/Request.Stocks">github.com/eerne/Request.Stocks</a></p>


</body>
</html>


Le premier .js qui s'intitule Request.Stocks.element.js se trouvant dans un dossier Source :
/*
---
name: Request.Stocks.element

description: Loading stock quotes in an Element adding method to the Element using: $('elem').loadStocks()

authors:
  - Enrique Erne (https://mild.ch/

license:
  - MIT license

requires:
  - Core/Element
  - Request.Stocks

provides: [Request.Stocks]
...
*/

Element.implement({

	loadStocks: function(options){
		var self = this;
		new Request.Stocks(Object.merge({
			onSuccess: function(yahoo){
				var result = '';
				Array.each(Array.from(yahoo.query.results.quote), function(quote){
					result += '<h3>{Name}</h3><p>{Ask} ChangeinPercent: {ChangeinPercent} Change: {Change}</p>'.substitute(quote);
				}, this);
				           
				self.set('html', result);
			}, 
			onRequest: function(script){
				if (window.console){
					//console.log(script);
				}
				self.set('text', 'Loading...');
			}
		}, options)).send();
		return this;
	}
	  
});


Le 2ème .js qui se trouve aussi dans le dossier source et qui s'intitule Request.Stocks.js :

/*
---
name: Request.Stocks

description: fetch stock quotes from yahoo and display on your website.

authors:
  - Enrique Erne (https://mild.ch/

license:
  - MIT license

requires:
  - Core/Class
  - More/Request.JSONP

provides: [Request.Stocks]
...
*/

Request.Stocks = new Class({

	Extends: Request.JSONP, 

	options: {
		stocks: ['AAPL', 'GOOG', 'MSFT', 'YHOO'],
		display: ['Name', 'Ask', 'Change', 'ChangeinPercent'],
		sortBy: 'Name',
		desc: false,
		baseURL: 'http://query.yahooapis.com/v1/public/yql?q=',
		query: 'select symbol, {display} from yahoo.finance.quotes where symbol in ({quotes}) | sort(field="{sortBy}", descending="{desc}")',
		data: {
			env: 'http://datatables.org/alltables.env',
			format: 'json'
		}
	}, 

	initialize: function(options){
		this.setOptions(options);
		var query = {
			display: this.options.display.join(', '),
			quotes: Array.from(this.options.stocks).map(function(stock){
					return '"' + stock + '"';
				}).join(', '),
			sortBy: this.options.sortBy,
			desc: this.options.desc
		};
		this.options.url = this.options.baseURL + this.options.query.substitute(query);
		this.parent(options);
	}
	
});


et voici le fichier xml qui a pour nom stocks.woeid.xml qui se trouve également dans le même dossier Source :

<?xml version="1.0"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta>
<sampleQuery>select * from yahoo.finance.quotes where symbol in ("YHOO","GOOG","MSFT")</sampleQuery>
<author>Adrian Statescu</author>
<description>Get Stock quotes with woeid</description>
<documentationURL>http://www.yqlblog.net/blog/2009/06/02/getting-stock-information-with-yql-and-open-data-tables/</documentationURL>
</meta>
<bindings>
<select itemPath="" produces="XML">
<inputs>
<key id="location" type="xs:string" paramType="variable" required="true" />
<key id="unit" type="xs:string" paramType="variable" />

</inputs>
<execute><![CDATA[

          default xml namespace ='http://where.yahooapis.com/v1/schema.rng';

          var q = 'select woeid from geo.places(1) where text="' + location + '"';

          var x = y.query(q);

          var s = x.results;

          var woeid = s..woeid;

          var url = 'http://weather.yahooapis.com/forecastrss?w=' + woeid + '&u=' + unit;

          var weather = y.rest(url).get().response;

          response.object = <weather> {weather} </weather>; 

]]></execute>
</select>
</bindings>
</table>



Donc voilà j'espère t'avoir donné toutes l'infos nécessaires et te remercie encore de te pencher sur mon problème.
0