TinyURL всплывающее окно вместо вкладки - PullRequest
0 голосов
/ 22 октября 2011

У меня тут необычная проблема.

Мне нужно позвонить в службу tinnyURL, чтобы сократить мой URL, она работает нормально.После этого мне нужно вызвать другую вкладку, но по какой-то причине она вызывает всплывающее окно.

Я предполагаю, что проблема в том, что я вызываю сервис 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.Все, что я хочу сделать, - это открыть новую вкладку.

Дайте мне знать, если у вас, ребята, уже были такие проблемы, это довольно хлопотно!

Спасибо.

Ответы [ 2 ]

1 голос
/ 22 октября 2011

Может быть много причин для блокировки ваших всплывающих окон, но в этом случае я держу пари, что это потому, что всплывающее окно не реагирует на пользовательское событие, такое как щелчок или ввод с клавиатуры.

В вашем случае это будет означать сокращение URL-адреса в фоновом режиме, прежде чем пользователь сможет даже публиковать сообщения в Твиттере, а когда он это сделает, вы откроете эту новую страницу в ответ на событие мыши.

0 голосов
/ 22 октября 2011

Это снова я, я только что понял проблему.

Все, что я сделал, это избежал службы TinyURL и напрямую вызвал средство обновления страницы Twitter, как показано ниже.

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

К счастью, в Твиттере есть собственное сокращение URL, когда вы объединяете "http://" до остальной части URL, он делает грязную работу.

Спасибо всем

...