Bonjour à tous,

N'étant pas professionnel de Javascript je m'en remets à votre expertise. J'utilise Jquery Mobile et j'ai modifié le client twitter Jquery mobile disponible ici : https://github.com/rsepulveda2/Twitter-Mobile

Tout fonctionne correctement à une chose près. En effet, une fois loggué (twitter connect) et si j'utilise le sendtweetbutton tout de suite sur la default_page je peux twitter sans problème de n'importe où (le code javascript semble chargé, l'alerte "Appel fonction d'envoi"... s'affiche). Par contre si je vais en premier sur la page #demo et que j'utilise le SendTweetButton à ce moment rien ne se passe (l'alerte que j'ai placée dans le javascript "Appel fonction d'envoi de tweets" ne s'affiche d'ailleurs pas) et je ne peux pas twitter (où que ce soit).



Code HTML

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
<div id="default_page" data-role="page" class="foo">
 
 
	<div data-role="content"  data-theme="b">	
 
	<div><a class="sendTweetButton" href="#" data-role="button" data-theme="e">Send tweet!</a></div> 	
 
		<div><a href="#demo">Demo</a></div> 	
 
</div>
</div>
 
 
<div id="demo" data-role="page" class="foo" >
	<div><a class="sendTweetButton" href="#message_page" data-role="button" data-theme="b">Send tweet!></a></div> 	
	<div><a href="#default_page" data-role="button" data-theme="e">Main menu</a></div> 
</div>
 
<div id="message_page" data-role="page">
 
    <div data-role="header"  data-theme="b" data-nobackbtn="true">
		<h3>OpenDays 2011</h3>
	</div><!-- /header -->
 
  <div class="content" data-role="content" style="b">
 
    <div class="tbox" style="b">
      <div style="padding-left:5px; width:300px;">
        <form class="sendTweet" action="#">
          <p style="font-size:110%;">
            <span class="tweetTitle">Say something about the demo</span>&nbsp;</p>
          <textarea class="tweetText" style="height:85px; width:270px;"></textarea>
          <button style="float:right; height:44px; font-weight: bold; font-size: 115%%; ' +margin-bottom: 5px; margin-right: 5px;" class="sendButton" type="button">Send</button>
        </form>
      </div>
    </div>
	<b>
	<div><a href="#default_page" data-role="button" data-theme="e">Main menu</a></div> 
	<!--<a button type="button" data-theme="a" onclick="goBack()">Back</a>-->
  </div>
 
	<div data-role="footer"  data-theme="b">
 
	</div><!-- /header -->
</div>

Code Javascript

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
  function installButtonHandlers(stitle,title)
  {
    // the direct message to @user callback
    $(stitle + " .directMsgButton").click( function(){
 
      if( title == 'DirectMessages') // if we are already displaying direct messages, ignore this
        return;
 
      if( title == 'Timeline'){ // Display all direct messages sent to and from current user
 
        twttr.anywhere(function (T) {
          displayPageLoadingIndicator();
 
          T.User.current().directMessages( {count:50, success:function(receiveDMs){
            T.User.current().sentMessages( {count:50, success:function(sentDMs){
 
              $.mobile.pageLoading(true);
 
              var myReceiveDMs = receiveDMs.array;
              var newArray = myReceiveDMs.concat(sentDMs.array);
 
              var nowDate = new Date();
              newArray.sort( function (a,b) {
                var createdDateA = new Date(a.createdAt);
                var createdDateB = new Date(b.createdAt);
 
                var diffA = nowDate - createdDateA;
                var diffB = nowDate - createdDateB;
 
                return diffA - diffB;
              });
 
              updateStatusPage(T, newArray, "DirectMessages");
            }});
          }});
        });
 
        return false;
      }
      else { // send a Direct message to this user
 
        sendMessage("Direct Message to " + $(this).attr("status_id"), $(this).attr("status_id"), function(id,msg){
 
        twttr.anywhere(function (T) {
          T.DirectMessage.send( id.substr(1,id.length - 1), msg, {success: function(){
              goBack();
            }, error:function(){
              alert("Error sending message to " + id);
              goBack();
            }});
          });
 
          return false;
        });
 
        return false;
      }
    });
 
    // the public reply to @user callback
    $(stitle + " .publicReplyButton").click( function(){
 
      sendMessage("Reply to " + $(this).attr("status_id"), $(this).attr("status_id"), function(id,msg){
 
      twttr.anywhere(function (T) {
        T.Status.reply( 0, msg, {success: function(){
            goBack();
          }, error:function(){
            alert("Error sending message to " + id);
            goBack();
          }});
        });
 
        return false;
      }, $(this).attr("status_id") + " ");
 
      return false;
    });
 
    // the user's profile callback
    $(stitle + " .profileButton").click( function(){
      profile($(this).attr("status_id"));
      return false;
    });
 
    // the tweet button callback
    $(stitle + " .sendTweetButton").click( function(){
	  alert("Appel fonction d'envoi de tweets");
      sendMessage("Tweet about open days 2011 or about a demo", $(this).attr("status_id"), function(id,msg){
 
      twttr.anywhere(function (T) {
        T.Status.update( msg, {success: function(){alert("Your tweet has been sent ;)");
          }, error:function(){
            alert("Error sending tweet");
          }});
        });
 
        return false;
      });
 
      return false;
    });
 
    // logout button callback
    $(stitle + " .logoutButton").click( function(){
      twttr.anywhere.signOut();
      return false;
    });
  }
En vous remerciant beaucoup !

Nicolas