5

Sto tentando di scrivere un bookmarklet-come js frammento che può essere eseguito dalla console strumenti di sviluppo che fornirà lo src per le immagini nella pagina:javascript nella console degli strumenti di sviluppo scarica/salva i file o è in modalità sandbox?

var x = ["PA633", "PA10", "PA11"]; 
function nextPage(i) { 
    $('#viewport div:first-child').animate({scrollTop: i}, 200); 
    i+=1020; 
    if (i < 20000) { setTimeout(nextPage, 200, i); } 
    for (index = 0; index < $('div.pageImageDisplay img').length; ++index) { 
     var page = /&pg=([A-Z]{2,3}\d+)&/.exec($('div.pageImageDisplay img')[index].src); 
     if ($.inArray(page[1], x) != -1) { 
      x.splice(x.indexOf(page[1]), 1); 
      var embiggen = $('div.pageImageDisplay img')[index].src.replace(/&w=\d+$/, "&w=1200"); 
      console.log(embiggen); 
     } 
    } 
} 

Questo script funziona in quanto fornisce la corretta link src per ogni immagine. C'è un modo per scaricare/salvare javascript automaticamente ogni link? È possibile fare clic su ciascun link (Chrome li apre in una nuova scheda), ma un po 'noioso per farlo.

Il modo corretto per farlo sarebbe quello di avere lo snippet di javascript per salvare le immagini nella cartella dei download stessa, ma ho un'idea vaga che non è possibile. È possibile, e se sì, come potrebbe essere realizzato?

Si prega di notare che questo javascript non sarà incluso direttamente in una pagina web, ma è pensato specificamente per essere eseguito dalla console degli strumenti di sviluppo.

risposta

4

Ciò richiede che diverse parti funzionino. Prima di tutto, è necessario aggiungere (a meno che non si può riutilizzare un esistente) link alla pagina con qualcosa di simile:

$("body").append($("<a id='xyz'/>")); 

Quindi, è necessario impostare l'href del collegamento a quella del file da scaricare :

 $('#xyz').attr("download", page[1] + ".png"); 
     $('#xyz').attr("href", embiggen); 

Si noti che possiamo anche (all'interno di Chrome almeno) impostare il nome file automaticamente, tramite l'attributo di download.

Infine, JavaScript può emettere un evento click al tag di ancoraggio per sé con:

 $('#xyz')[0].click(); 

Quando questo viene eseguito, si scarica automaticamente il file. L'impostazione del nome file sembra impedirgli di aprire la finestra di dialogo del file.