Bonjour,
Je suis entrain de réaliser un widget pour la side bar de windows en html javascript.
J'ai réussi à fair un lecteur de flux rSS seulement son code est très capricieu, il s'arrête de fonctionné suivant des paramètre qu'on lui donne si on l'appel trop de fois bref en plus comme la side bar ne vous montre rien et qu'il n'y pas d'équivalent d'un écho ou cout en javascript, la débug devient presque impossible. C'est pourquoi j'espère que vous pourrez m'aidez.
Voilà ou j'en suis : le lecteur RSS OK! Le changement de taille entre mode docké (dans la side bar) et Undocké (sur le bureau par ex) OK!
Mais si on veut bidouillé les deux ensembles ca marche pas!!!
Je veux par exemple afficher les titres est date en mode docké et afficher en plus la description en mode undocké. Je n'arrive pas à savoir si le statut tels que System.gadget.docked fonctionne vraiment, aucun tuto sur le net ni vraiment de doc,



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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">

<head>
<title>News Klipjob</title>
<link rel="stylesheet" href="../css/style.css" type="text/css" />
</head>

<script language="javascript"  type="text/javascript">
System.Gadget.onUndock =  genUndocked;
System.Gadget.onDock =genDocked;
var RSSRequestObject = false; // XMLHttpRequest Object
//var Backend = 'http://blog.klipjob.com/feed/'; // Backend url
var Backend = 'http://master2rtno.wordpress.com/feed/'; // Backend url
window.setInterval("update_timer()", 1200000); // update the data every 20 mins


if (window.XMLHttpRequest) // try to create XMLHttpRequest
	RSSRequestObject = new XMLHttpRequest();

if (window.ActiveXObject)	// if ActiveXObject use the Microsoft.XMLHTTP
	RSSRequestObject = new ActiveXObject("Microsoft.XMLHTTP");



/*
* onreadystatechange function
*/
function ReqChange() {

	// If data received correctly
	if (RSSRequestObject.readyState==4) {
	
		// if data is valid
		if (RSSRequestObject.responseText.indexOf('invalid') == -1) 
		{ 	
			// Parsing RSS
			var node = RSSRequestObject.responseXML.documentElement; 
			
			
			// Get Channel information
			var channel = node.getElementsByTagName('channel').item(0);
			var title = channel.getElementsByTagName('title').item(0);
			var link = channel.getElementsByTagName('link').item(0);


			
			content = '<div class="channeltitle"><a href="'+link+'">'+title+'</a></div><ul>';
		
			// Browse items
			var items = channel.getElementsByTagName('item');
			for (var n=0; n < items.length; n++)
			{
				var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
				var itemLink = items[n].getElementsByTagName('link').item(0).firstChild.data;

			
				try 
				{ 
					var itemPubDate = '<font color=gray>['+items[n].getElementsByTagName('pubDate').item(0).firstChild.data+'] ';
				} 
				catch (e) 
				{ 
					var itemPubDate = '';
				}
				
			
				content += '<li id="Titre1"><a href="'+itemLink+'">'+itemTitle+'</a></li>';
				content += '<li id="Date">'+itemPubDate+'</font></li><br>';
			}
			
			
			content += '</ul>';
			// Display the result
			document.getElementById("ajaxreader").innerHTML = content;

			// Tell the reader the everything is done
			document.getElementById("status").innerHTML = "Done.";
			
		}
		else {
			// Tell the reader that there was error requesting data
			document.getElementById("status").innerHTML = "<div class=error>Error requesting data.<div>";
		}
		
		HideShow('status');
	}
	
}
function ReqChange2() {

	// If data received correctly
	if (RSSRequestObject.readyState==4) {
	
		// if data is valid
		if (RSSRequestObject.responseText.indexOf('invalid') == -1) 
		{ 	
			// Parsing RSS
			var node = RSSRequestObject.responseXML.documentElement; 
			
			
			// Get Channel information
			var channel = node.getElementsByTagName('channel').item(0);
			var title = channel.getElementsByTagName('title').item(0);
			var link = channel.getElementsByTagName('link').item(0);
			var desccription = channel.getElementsByTagName('link').item(0);

			
			content = '<div class="channeltitle"><a href="'+link+'">'+title+'</a></div><ul>';
		
			// Browse items
			var items = channel.getElementsByTagName('item');
			for (var n=0; n < items.length; n++)
			{
				var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
				var itemLink = items[n].getElementsByTagName('link').item(0).firstChild.data;
				var itemDescp = items[n].getElementsByTagName('description').item(0).firstChild.data;
			
				try 
				{ 
					var itemPubDate = '<font color=gray>['+items[n].getElementsByTagName('pubDate').item(0).firstChild.data+'] ';
				} 
				catch (e) 
				{ 
					var itemPubDate = '';
				}
				
						content += '<li id="Titre2"><a href="'+itemLink+'">'+itemTitle+'</a></li>';
						content += '<li id="Descp">'+itemDescp+'</li>';
				content += '<li id="Date">'+itemPubDate+'</font></li><br>';
			}
			
			
			content += '</ul>';
			// Display the result
			document.getElementById("ajaxreader2").innerHTML = content;

			// Tell the reader the everything is done
			document.getElementById("status").innerHTML = "Done.";
			
		}
		else {
			// Tell the reader that there was error requesting data
			document.getElementById("status").innerHTML = "<div class=error>Error requesting data.<div>";
		}
		
		HideShow('status');
	}
	
}

/*
* Main AJAX RSS reader request
*/
function RSSRequest(dock) {

	// change the status to requesting data
	HideShow('status');
	document.getElementById("status").innerHTML = "Requesting data ...";
	
	// Prepare the request
	RSSRequestObject.open("GET", Backend , true);
	// Set the onreadystatechange function
   if (System.Gadget.docked) 
	RSSRequestObject.onreadystatechange = ReqChange;
	else
		RSSRequestObject.onreadystatechange = ReqChange2;
	// Send
	RSSRequestObject.send(null); 
}

/*
* Timer
*/
function update_timer() {
	RSSRequest();
}


function HideShow(id){
	var el = GetObject(id);
	if(el.style.display=="none")
	el.style.display='';
	else
	el.style.display='none';
}

function GetObject(id){
	var el = document.getElementById(id);
	return(el);
}


function loadMain() {   


   // on associe les évènements d’ancrage à des fonction JavaScript
    System.Gadget.onDock = procDockEvent;           
    System.Gadget.onUndock = procUndockEvent;       

    // on détecte le mode d’affichage du gadget pour appeller la bonne fonction
    if (System.Gadget.docked) {
         genDocked();
    }    else {
         genUndocked();
    }
}
function procDockEvent()
{   // appel de la fonction de gestion du mode docké 
    genDocked();
}
function procUndockEvent()
{   // appel de la fonction de gestion du mode dédocké
    genUndocked();
}
function genDocked()
{   // génère le contenu docké
 document.body.style.width = "130px";
    document.body.style.height = "300px";
	 System.Gadget.background="url(../back.png)";
	 RSSRequest(true) 
  /* ";
    gadgetMainFrame.style.width = "120px";
    gadgetMainFrame.style.height = "190px";    
    gadgetContentFrame.style.width = "120px";
    gadgetContentFrame.style.height = "190px";    
    // gère la visibilité des divs
    gadgetContentFrameDocked.style.display = "block";
    gadgetContentFrameUndocked.style.display = "none";    */   
}
function genUndocked()
{   // génère le contenu dédocké 
 document.body.style.width = "600px";
    document.body.style.height = "600px";
	 System.Gadget.background="url(../backUndock.png)";
	 RSSRequest(false) 
   /*    System.Gadget.background="url(images/backgnd_310X230.png)";
    gadgetMainFrame.style.width = "300px";
    gadgetMainFrame.style.height = "220px";    
    gadgetContentFrame.style.width = "300px";
    gadgetContentFrame.style.height = "220px";    
    // gère la visibilité
    gadgetContentFrameDocked.style.display = "none";
    gadgetContentFrameUndocked.style.display = "block";*/   
}
        

</script>

<body onload="RSSRequest()">
<br><br><br>
<h4>News klipjob</h4>
<div id="status" style="display:none"></div>
<div id="ajaxreader"></div>
</body>

</html>