Bitly API - 用于打开新窗口的JavaScript函数

时间:2013-01-11 10:55:39

标签: javascript twitter

我正在使用脚本i found here动态生成我的推文按钮的短链接,它运行得很好,但我似乎唯一能做的就是创建链接以在新标签中打开或优选地是弹出窗口。

我尝试了脚本的window.location部分的几个变种,但到目前为止我没有运气。如果有人能指出我的正确指示,我将非常感激。

这是我正在使用的脚本......

<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>

非常感谢提前:)

2 个答案:

答案 0 :(得分:3)

通常你可以window.open

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

但是,由于您在此之前正在进行ajax调用,因此浏览器可能会阻止此窗口弹出窗口,因为window.open命令不再与点击相关联(浏览器允许一定时间)在window.open命令属于非启动的“弹出窗口”之前。

解决方案是首先打开窗口(在缩短功能中):

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

然后在您的回复功能中重定向:

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

演示:http://jsbin.com/usovik/1

答案 1 :(得分:1)

也许你正在寻找

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