So che Chrome ti consente di selezionare il contesto per l'esecuzione della console con un menu a discesa e che Firebug ti consente di fare cd()
in un iframe. Non riesco a capire come modificare il contesto nella console di Safari. Qualcuno sa come fare questo?Modifica il contesto della console di Safari 6 in un iframe nella pagina
risposta
Safari, a differenza di Chrome e Firefox, non ha un vero supporto per questa funzionalità e l'unica opzione sembra essere quella di accedere all'oggetto finestra dalla console. Come si punta correttamente questo innescherà questioni di politica di dominio croce, tuttavia a condizione che il funzionamento su Mac (questo non funziona per qualche ragione su Windows) è possibile utilizzare
open -a '/Applications/Safari.app' --args --disable-web-security
per aggirare questo. E dopo sulla tua jsbin potresti usare qualcosa sulla falsariga di
window.frames[0]
per accedere alla finestra della pagina. Per quanto posso vedere non esiste una soluzione simile per Windows, come
Safari.exe --disable-web-security
apparentemente non funziona.
l'elemento IFRAME in sé è di tipo finestra all'interno della console
<iframe id="frame" src="about:blank"/>
Nella console Safari, allora è sufficiente lavorare con
frame.document.write('bla');
prega di notare che 'frame' è una scorciatoia per document.getElementById('frame')
Sfortunatamente questo non funziona con iframe con un dominio diverso da quello della pagina host. Ecco perché il comando firebug 'cd' e il menu a discesa di Chrome per cambiare" contesti "sono così utili ... –
Sicuro? Ho provato questo con un URL diverso e ha funzionato. Solo per la pubblicazione l'ho cambiato a circa: vuoto. –
Sì: http://jsbin.com/ojiley/2 - quando apro la console di Safari e digito: 'document.getElementById (" test-iframe "). Document' I get' undefined': http: // cl .ly/image/0N0v1l223w1m –