Non definirei questa soluzione elegante in alcun modo, ma come un trucco, farà il lavoro.
La tua domanda è "come focalizzare il documento principale da alla Console di Chrome"; con quello, sto gettando in un elemento intermedio - una finestra popup. L'idea è, se riesci a creare una finestra popup che si chiude da solo (dalla Console), quando si chiude, lo stato attivo torna alla finestra principale. In questo caso, è il documento effettivo in cui ti trovavi, non la Console in Chrome.
Ecco il codice completo laid-out:
var openScript = document.createElement('script');
openScript.innerHTML = 'openWindow = window.open(""); openWindow.document.write(\'<script>window.close();</script>\');';
document.body.appendChild(openScript);
Questo codice può essere crollato in un one-liner che può essere la copia + incollata nella console e, dopo aver colpito Enter sarà popup, chiudi e riduci l'attenzione al documento originale. Qualunque elemento della pagina si concentri prima di concentrarti sulla console, o su qualsiasi elemento che hai modificato tieni a fuoco su nella console, la console (tramite document.getElementById('something').focus()
o simile) si concentrerà sulla pagina.
L'avvertenza a questo approccio è che il sito Web su cui si utilizza deve disporre di popup attivati. In alternativa, e non proprio consigliato, puoi semplicemente "attivare tutti i popup" in Chrome.
Come ulteriore aggiunta, se si intende utilizzare più volte questa stessa pagina (senza aggiornamento), è possibile racchiudere il javascript aggiunto alla pagina in una chiamata di funzione e chiamare ogni volta tale funzione. Per esempio:
...
openScript.innerHTML = 'function refocus() { openWindow = window.open(""); openWindow.document.write(\'<script>window.close();</script>\'); }';
...
Poi basta chiamare refocus();
ogni volta che si vuole dare attenzione torna al genitore. Naturalmente, se si lascia la pagina corrente per qualsiasi motivo, è necessario rieseguire di nuovo il blocco completo del codice.
Per quello che vale, se si vede che si utilizza molto, è inoltre possibile aggiungere l'estensione Tampermonkey e salvare questo blocco di codice in una funzione lì; quindi, non avresti mai bisogno di preoccuparti di eseguire l'intera operazione ogni volta: dovresti solo chiamare il nome della funzione che hai salvato.
One-liner dall'alto (per copia + incolla):
var openScript = document.createElement('script'); openScript.innerHTML = 'openWindow = window.open(""); openWindow.document.write(\'<script>window.close();</script>\');'; document.body.appendChild(openScript);
Ho sentito che volevi saltare questa domanda, quindi ecco una piccola spinta :) –
Grazie, in un'ora posso mettere una taglia su questo, quindi non che gli altri utenti pensano che sia solo una domanda allentata. Posso immaginare che non è facile rispondere in quanto si potrebbe pensare in prima persona che non è possibile e per rispondere bisogna conoscere Google Chrome/Chromium abbastanza bene per sapere in realtà * se è possibile o meno. – hakre
Probabilmente hai già trovato [chrome.tabs docs] (http://developer.chrome.com/extensions/tabs.html) nella libreria di estensioni di Chrome, sembra che 'chrome.tabs' sia limitato per essere utilizzato dal codice di estensione. Se inserisci "chrome" nella console, avrai tutte le proprietà disponibili dalla console. Vedrò se riesco a trovare una soluzione alternativa. – SaschaM78