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 に答える