2013-01-11 5 views
0

J'utilise un script i found here pour générer dynamiquement un lien court pour mes boutons Tweet et cela fonctionne parfaitement bien, mais la seule chose que je ne peux pas faire est de créer le lien pour ouvrir dans soit un nouvel onglet ou de préférence une fenêtre contextuelle.API Bitly - fonction JavaScript pour ouvrir une nouvelle fenêtre

J'ai essayé plusieurs variantes de la section window.location du script mais jusqu'à présent je n'ai pas eu de chance. Si quelqu'un pouvait me diriger dans la bonne direction, je serais très reconnaissant.

C'est le script que je utilise ...

<script> 
    var TweetThisLink = { 
     shorten: function(e) { 
      // this stops the click, which will later be handled in the response method 
      e.preventDefault(); 
      // find the link starting at the second 'http://' 
      var url = this.href.substr(this.href.indexOf('http:', 5)); 
      BitlyClient.shorten(url, 'TweetThisLink.response'); 
     }, 

     response: function(data) { 
      var bitly_link = null; 
      for (var r in data.results) { 
       bitly_link = data.results[r]['shortUrl']; 
       break; 
      } 
      var tweet_text = "Text for the Tweet goes here" 

      window.location = "http://twitter.com/home?status=" + encodeURIComponent(tweet_text + ' ' + bitly_link + " #Hashtag1 #Hashtag2"); 

     } 
    } 

    jQuery('.tweetlink').bind('click', TweetThisLink.shorten); 
</script> 

Un grand merci à l'avance :)

Répondre

1

Peut-être que vous cherchez

window.open("http://example.com"); 
3

Normalement, vous pouvez simplement faire window.open :

window.open("http://twitter.com/home?status=" + encodeURIComponent(tweet_text + ' ' + bitly_link + " #Hashtag1 #Hashtag2"); 

MAIS, puisque vous faites un appel ajax avant que cela n'arrive, il y a de fortes chances que cette fenêtre soit bloquée par le navigateur, puisque la commande window.open n'est plus associée au clic (les navigateurs allouent un certain temps avant qu'une commande window.open tombe sous "popup" non initié).

Une solution serait d'abord ouvrir la fenêtre, cliquez (dans votre fonction Raccourcir):

var win = window.open('about:blank'); 

Et puis rediriger dans votre fonction de réponse:

win.location = 'http://twitter.com/etc...'; 

Démo: http://jsbin.com/usovik/1

+0

Salut David, Merci beaucoup pour votre réponse, mais malheureusement, cela n'a pas fonctionné pour moi. S'il vous plaît pardonnez-moi car mes compétences JS sont minimes, mais où exactement dans la fonction de raccourcis suggéreriez-vous que je place la fenêtre. et de même avec le win.location dans la réponse? Puis-je encore utiliser la liaison jquery pour rejoindre le lien raccourci? – robolist

Questions connexes