Me gustaría preguntar si es posible crear una secuencia de comandos de Chrome o Greasemonkey que podría abrir todas las ventanas emergentes en la cola. Hasta ahora tengo 2 scripts separados para esto, pero eso no funciona bien ya que los pop-ups tienen una función anti-spam que no permite demasiados al mismo tiempo.jQuery cola en Chrome userscript con ventanas emergentes?
Lo que me gustaría hacer es procesar un conjunto de enlaces emergentes en forma de cola y solo abrir el siguiente cuando el anterior está cerrado. No tengo expirience cuando se trata de colas y cualquier tipo de enlace de eventos.
para que los recursos que tengo:
1) matriz de enlaces ya preparado
var URL_Array = [];
$('form[name="form_gallery"] .img img').each(function(i,e){
// Format URL array here
if($(this).closest('.object').children('.phs_voted_count').length == 0){
var string = e.src;
var nowBrake = string.substring(string.length-7,7);
var splited = nowBrake.split('/');
var urlStr = '/window/friend/gallery_view/'+splited[3]+'/'+splited[4]+'.html';
URL_Array[i] = urlStr;
}
});
2) Script que vota en la imagen en la ventana emergente
/*######################################################*/
var voteBy = '#vte_mark_12'; // Prefered vote icon
var voteDefault = '#vte_mark_5'; // Default vote icon
var voteFormLoc = 'image_voting'; // Image voting popups form
var buyExtraVote = 'image_voting_buy'; // If run out of votes buy more
var captchaLoc = 'input[name="captcha"]'; // Captcha input field
var captchaTxt = 'Enter captcha text!'; // Captcha alert text
var simpatyFormId = '#sym_send'; // Simpaty window form
var startScript = true;
var formProcessedAlready = false; // Used to check if image already was voted
/*######################################################*/
$(function(){
if(startScript){
if($(captchaLoc).length > 0){
alert(captchaTxt);
$(captchaLoc).focus().css('border', '2px solid red');
return false;
}else{
if($('#50').length > 0){
$('#50').attr('checked', true);
$('form').attr('id', buyExtraVote);
$('#'+buyExtraVote).submit();
}else{
$('form').attr('id', voteFormLoc);
if($(voteBy).length > 0){
$(voteBy).attr('checked', true);
setTimeout("$('#"+voteFormLoc+"').submit()", 2000);
}else if($(voteDefault).length > 0){
$(voteDefault).attr('checked', true);
setTimeout("$('#"+voteFormLoc+"').submit()", 2000);
}else{
// If we have simpaty box autocast submit
if($(simpatyFormId).length > 0){
if($(captchaLoc).length > 0){
alert(captchaTxt);
$(captchaLoc).focus().css('border', '2px solid red');
return false;
}else{
$(simpatyFormId).submit();
formProcessedAlready = true;
}
}else{
formProcessedAlready = true;
}
}
}
}
if(formProcessedAlready){
self.close();
}
}
});
Por lo que yo puedo entenderlo debería ir así:
1) Obtener todos los urls no votados y formar matriz (hecho)
2) cola todas las ventanas emergentes para abrir
3) Iniciar la primera popup
4) Votación hecho y emergente cierra (hecho)
5) Iniciar segundo elemento emergente
6) Cuando conjunto de conmutadores terminado a la página siguiente (hecho)
¿Qué te parece?
me hace mejor que una ventana emergente, por lo que cualquier programa antivirus willn't bloquearlo. Inicie la primera ventana emergente -> La votación se ha completado y la ventana emergente se actualiza con la nueva forma -> ... –
Estoy listo para cualquier solución, una o nueva cada vez. Seré la única persona que usará esto para no tener que preocuparme por ningún bloqueo. – arma