TinyURL всплывающее окно вместо вкладки

У меня здесь необычная проблема.

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

Я предполагаю, что проблема в том, когда я звоню в сервис tiny URL, но я не знаю, как это исправить.

Ниже приведен код, который я написал для этого.

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 ответа

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

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

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

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

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

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

Спасибо вам всем

Другие вопросы по тегам