0

我正在使用我在此处找到的脚本为我的推文按钮动态生成短链接,它运行良好,但我似乎唯一不能做的就是创建链接以在新选项卡或最好是弹出窗口中打开。

我已经尝试了脚本的 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>

提前谢谢了 :)

4

2 回答 2

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

于 2013-01-11T11:03:04.963 回答
1

也许你正在寻找

window.open("http://example.com");
于 2013-01-11T10:57:31.860 回答