2010-07-03 4 views
0

J'essaie d'interagir avec Twitter via JavaScript. Je souhaite transmettre un message prédéfini à la page d'état Twitter d'un utilisateur lorsqu'il clique sur un lien. Pour tenter de le faire, j'ai un lien défini comme suit:Passer une chaîne via une URL via JavaScript

<a href="#" onclick="updateTwitterStatus();">Update Status</a> 

<script type="text/javascript"> 
    function updateTwitterStatus() { 
    var message = "This is a status update"; 
    var url = "http://www.twitter.com/home?status=" + escape(message); 
    window.open(url, "_blank"); 
    } 
</script> 

Lorsque j'exécute ce code, je reçois un message codé. Cela se présente comme ceci: Cette% 20is% 20a% 20status% 20update

J'ai essayé decodeUriComponent et encoderUriComponent, mais rien ne semble fonctionner. Qu'est-ce que je fais mal?

+1

'encodeURIComponent' devrait faire le travail. Le statut est brouillé à l'intérieur de Twitter? –

+0

Je pense que votre code est correct. Êtes-vous sûr que Twitter ne remplace pas vos espaces? – Marko

Répondre

0

Le problème n'est pas lié à l'encodage, c'est très bien. Twitter veut un "+" au lieu de "% 20" pour une raison étrange et non conforme. Twitter ne permet pas de publier sur la page d'état de cette manière. Et cette décision est logique: après vous être connecté à Twitter, vous ne voulez certainement pas donner à un site Web que vous visitez la possibilité de spammer votre flux.

Vous pouvez jeter un oeil à http://dev.twitter.com/pages/libraries#javascript

+0

Pas vrai. Twitter permet de poster de cette façon - pour l'utilisateur actuellement connecté. –

+0

Twitter ne permet pas de poster sur la page d'état de cette façon pour les raisons indiquées dans ma réponse. Tout ce qu'il fait est d'ouvrir la page d'édition et de mettre le texte dans la zone de texte. Vous pourriez vouloir l'essayer: http://www.twitter.com/home?status=Cet+message+est+not+posted+to+my+status+page+unless+I+click+on+Tweet. –

+0

Publier ou se préparer à poster, je voulais dire la même chose. Quoi qu'il en soit, bon appel! Je ne peux plus m'en prévaloir mais j'ai supprimé le downvote. –

Questions connexes