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, он выполняет грязную работу.
Спасибо вам всем