0

ここで珍しい問題が発生します。

URL を短縮するには、tinnyURL サービスを呼び出す必要があります。正常に動作しています。その後、別のタブを呼び出さなければならないのですが、なぜかポップアップが呼び出されます。

問題は tinyURL サービスを呼び出すときだと思いますが、修正方法がわかりません。

以下は、私がこのために書いたコードです。

variables.url = String("http://www.google.com");
sendAndLoad("http://tinyurl.com/api-create.php", variables);


// tinyURL service
private function sendAndLoad( url:String, _vars:URLVariables ):void {

    request = new URLRequest(url);
    request.data = _vars;
    request.method = URLRequestMethod.POST;
    _urlloader = new URLLoader();
    _urlloader.dataFormat = URLLoaderDataFormat.TEXT;


    _urlloader.addEventListener(Event.COMPLETE, handleComplete);
    _urlloader.load(request);

}
// once I get the tinyURL response this function is triggered 
private function handleComplete(event:Event):void {
    var s:String = event.target.data;
    finalURL = "http://twitter.com/home?status=" + MESSAGE + " " + s;
    var url:URLRequest = new URLRequest(finalURL);
    navigateToURL(url); 
}

だから私はFacebookにも同じ「方法」(tinyURLなし)を持っていて、それは正しく動作します.最初の方法(sendAndLoad();)内の問題だと思います.

私はすでに次のような代替手段を使用しました:

http://skovalyov.blogspot.com/2007/01/how-to-prevent-pop-up-blocking-in.html および http://snipplr.com/view.php?codeview&id=29544

PS: Chrome でポップアップのブロックを解除すると、Twitter が機能します。私がしたいのは、新しいタブで開くことだけです。

皆さんがすでにそのような問題を抱えている場合はお知らせください。かなり面倒です。

ありがとうございました。

4

2 に答える 2

1

ポップアップがブロックされる理由はたくさんありますが、この場合は、ポップアップがクリックやキーボード入力などのユーザー イベントに反応しないためだと思います。

あなたの場合、ユーザーがTwitterへの投稿を選択できるようにする前に、バックグラウンドでURLの短縮を行うことを意味し、ユーザーがそれを行うと、マウスイベントに応答してその新しいページが開きます。

于 2011-10-21T23:22:32.797 に答える
0

それはまた私です、私はちょうど問題を理解しました。

私がしたのは、TinyURLサービスを避けて、以下のようにTwitterページアップデーターを直接呼び出すことだけでした。

var myString:String = "http://twitter.com/home?status=" + MESSAGE + " " + LINK;
var url:URLRequest = new URLRequest(myString);
navigateToURL(url);

幸い、Twitterには独自のURL短縮サービスがあり、「http://」を残りのURLに連結すると、汚い作業を行います。

皆さん、ありがとうございました

于 2011-10-22T17:34:55.030 に答える