¿Cómo puedo aparecer inspector web de Webkit objeto de mi vista Web mediante programación?

StackOverflow https://stackoverflow.com/questions/2036148

Pregunta

¿Cómo puedo aparecer web de Webkit Inspector de mi WebView objeto mediante programación?

tengo éxito para habilitar inspector web de Webkit en mi vista web. Está funcionando bien, y ahora puede hacer estallar para arriba haciendo clic en "Inspeccionar elemento" en el menú contextual. Y yo quiero hacer esto con mi pulsador. Pero no pude encontrar una manera apropiada de hacerlo. Mi conocimiento DOM tiene 10 años muy novato, en HTML DOM de hoy en día. ¿Hay alguna manera de hacer esto?

He encontrado un documento de clase: InspectorController . Creo que esto es una especie de llave. Pero no puedo saber qué objeto expone y cómo puedo usar esto.

Medio ambiente:

  • Mac OS X 10.6
  • Xcode 3.2.1 (iPhone SDK, no plug-in)
¿Fue útil?

Solución

No hay una API pública para interactuar con el WebInspector a través del DOM o el cacao. Usted debe presentar una solicitud de mejora en https://bugreport.apple.com/ pidiendo esta API.

InspectorController es también un detalle de implementación interna de la WebInspector y su probable un error que está en la página web de documentación.

Otros consejos

Aquí hay un código que debe ayudar a que lo abra a partir de cacao mediante programación:

@interface WebInspector : NSObject
{
    WebView *_webView;
}
- (id)initWithWebView:(WebView *)webView;
- (void)detach:(id)sender;
- (void)show:(id)sender;
- (void)showConsole:(id)sender;
@end

void MyWebKit::ShowInspector(bool console){
  if ( !m_webView )
      return;

  if( !m_inspector ){
    m_inspector = [[WebInspector alloc] initWithWebView:m_webView];
    [m_inspector detach:m_webView];
  }

  if(console){
    [m_inspector showConsole:m_webView];
  }
  else {
    [m_inspector show:m_webView];
  }
}

Para extenderlo al dom, simplemente exponer esta función para JS.

Para aquellos confundido por la respuesta de @alex MacCaw (que es C ++), aquí es una versión más "normal" ..

en su archivo ... .m declarar los métodos de cabecera WebInspector ..

@interface WebInspector : NSObject  { WebView *_webView; }
- (id)initWithWebView:(WebView *)webView;
- (void)detach:     (id)sender;
- (void)show:       (id)sender;
- (void)showConsole:(id)sender;
@end

Luego, en ese mismo archivo, ya sea delegado de la aplicación, o subclase de vista Web, o lo ... declarar una Ivar a "mantener su inspector, y hacer un método para abrirla, la utilización de su web instancia de vista o la propiedad, o lo que sea. ...

@implementation AppController  { WebInspector *_inspector; }

- (IBAction)showInspector:(id)x {
   _inspector = _inspector = [WebInspector.alloc initWithWebView:_myWebView];
  [_inspector      detach:_myWebView];
  [_inspector showConsole:_myWebView];
}
....
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top