Search code examples
javascriptsafariconsoleweb-inspector

Change the context of the Safari 6 console to an iframe on the page


I know that Chrome let's you pick the context for the console's execution with a dropdown menu and that Firebug let's you cd() into an iframe. I can't figure out how to change the context in Safari's console. Does anyone know how to do this?


Solution

  • Safari, unlike chrome and firefox, has no real support for this functionality and the only option seems to be to access the window object from the console. As you correctly point this will trigger cross domain policy issues, however provided you're running on mac (this does not work for some reason on windows) you can use

    open -a '/Applications/Safari.app' --args --disable-web-security
    

    to bypass this. And next on your jsbin you could use something along the lines of

    window.frames[0]
    

    to access the window of the page. As far as I can see there is no similar solution for windows, as

    Safari.exe --disable-web-security
    

    apparantly does not work.