Salva la sorgente della finestra popup come stringa?

C’è un modo per salvare l’origine di una finestra popup al di fuori del mio dominio come stringa, aperta da:

window.open('html'); 

Inoltre un altro modo di risolvere il mio problema sarebbe dirigere l’output del popup in una stringa. Potrei usare chrome view-source: funzione browser e fare il popup:

 window.open('view-source:html'); 

Dal momento che sto usando questo solo per uso personale, può essere compatibile solo con Chrome se questo è l’unico modo per farlo.

Suggerisco di caricare il documento che si desidera aprire nel popup ed estrarre il suo innerHTML questo modo:

 var popup = window.open('http://url.com'); // documentElement is the  element so you would get everything inside var source = popup.document.documentElement.innerHTML; 

Funziona su IE. Non sono esattamente sicuro di quali siano le restrizioni di Chrome per i popup interdominio, quindi potresti dover controllare le impostazioni locali per quello.

Se desideri davvero creare una piccola app per realizzare ciò che stai descrivendo, ricorda che puoi fare clic con il pulsante destro del mouse e visualizzare praticamente qualsiasi origine di pagina in Chrome, tra cui tabs, home page e altri luoghi. Ironia della sorte o no, la pagina di View Source è l’unica che ho trovato che non riesco a ottenere alla fonte, anche se mi sembra di scoprire che cos’è l’URI:

 chrome-devtools://devtools/devtools.html 

Ma non succede niente, tranne se cerco quell’URI . Ecco alcuni URI da aprire e provare Right-Click + View Source per vedere cosa ottieni:

 * Regular tab (new) * view-source:chrome://newtab/ * view-source:chrome://extensions-frame // This has file handlers for extensions * view-source:chrome://settings-frame/settings // Go to lines `2907` * view-source:chrome://memory-redirect/ * view-source:chrome://downloads/ * view-source:chrome://settings-frame/options_bundle.js // This one has all kinds of good stuff * view-source:chrome://resources/js/util.js * view-source:chrome://chrome/uber.js * view-source:chrome://sync-internals/ * view-source:chrome://resources/js/cr/ui/array_data_model.js * view-source:chrome://resources/js/cr/ui/list_item.js * view-source:chrome://resources/js/cr/ui/tabs.js 

I seguenti due programmi di allenamento e altro da:

http://developer.chrome.com/extensions/tabs.html#samples

Intestazioni HTTP in tempo reale , headers.js – Quello che mostra di seguito è come potresti essere in grado di colbind un ascoltatore all’evento `window.onlaod“ e quando la risposta è ricevuta, essere informato in modo da poter prendere il codice sorgente (non dal browser sorgente analizzata e calcasting).

 window.addEventListener("load", function() { chrome.debugger.sendCommand({tabId:tabId}, "Network.enable"); chrome.debugger.onEvent.addListener(onEvent); }); } else if (message == "Network.responseReceived") { appendResponse(params.requestId, params.response); } 

Scarica collegamenti selezionati – Il secondo a da un file chiamato popup.js .

 // Send back to the popup a sorted deduped list of valid link URLs on this page. // The popup injects this script into all frames in the active tab. chrome.extension.sendRequest(links); // Download all visible checked links. chrome.experimental.downloads.download({ url: visibleLinks[i]}, function(id) { }); 

E, naturalmente, ecco un programma chiamato SingleFile che, come estensione. Sembra fare solo quello che cerchi (o puoi scaricare solo le parti che comprende separatamente ):

SingleFile (c) 2011 Gildas Lormeau

SingleFile è un’estensione di Chrome che consente di archiviare una pagina completa in un singolo file HTML.

Le cattive notizie temo che sia abbastanza utile, dato che ora ho guardato molto e altre risorse, penso che un po ‘di questo è più o meno solo il browser interno. Presta attenzione alle app di esempio e tieni presente che esistono diversi tipi di app con diversi usi e livelli di accesso.

Inutile dire che ho trovato un sacco di cose e non ho idea di quanta ne vuoi, di cui hai bisogno o di cui ti preoccupi. Ma ho pensato che, visto che mi hai ripensato, avrei continuato a condividere con te quello che ho trovato. Esistono diverse app di esempio, penso che potresti riconfigurare o lavorare per lavorare al posto tuo. In bocca al lupo.


Alcuni altri punti salienti:

  • OptionsPage , che sembra essere il modo in cui il browser interagisce con chrome.tab
  • filer.js , una class API file HTML5 per Chrome
  • Esempi di app di Chrome @GitGub, incluso un esempio di accesso al file system
  • Un altro repository di estensioni di esempio
  • Ciao mondo
  • document.getElementsByTagName('html')[0].innerHTML su window.load
  • chrome.tabs
  • Il contenuto degli script è molto probabilmente quello che ti serve, insieme a …
  • Iniezione programmatica e
  • Comunicazione con la pagina di incorporamento
  • La pagina di origine di Dev Tools
  • chrome / browser / resources ,
  • chrome.* API s
  • chrome / browser / resources / file_manager / js
  • chrome-toolbox
  • chrome / browser / resources / extensions