当前位置:  开发笔记 > 前端 > 正文

如何以编程方式从WebView对象中弹出Webkit的Web Inspector?

如何解决《如何以编程方式从WebView对象中弹出Webkit的WebInspector?》经验,为你挑选了2个好方法。

如何以编程方式从WebView对象中弹出Webkit的Web Inspector?

我成功在WebView上启用了Webkit的Web Inspector.它运行良好,现在我可以通过单击上下文菜单中的"检查元素"来弹出它.我想用我的按钮做到这一点.但我找不到合适的方法来做到这一点.我的DOM知识已有10年历史,是当今HTML DOM的新手.有没有办法做到这一点?

我找到了一个类文档:InspectorController.我认为这是一种关键.但是我不知道暴露了什么对象以及如何使用它.

环境:

Mac OS X 10.6

Xcode 3.2.1(iPhone SDK,无插件)

Alex MacCaw.. 11

这里有一些代码可以帮助你以编程方式从cocoa中打开它:

@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];
  }
}

要将它扩展到dom,只需将此函数公开给JS即可.



1> Alex MacCaw..:

这里有一些代码可以帮助你以编程方式从cocoa中打开它:

@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];
  }
}

要将它扩展到dom,只需将此函数公开给JS即可.



2> Alex Gray..:

对于那些被@alex MacCaw的答案(它是c ++)搞糊涂的人来说,这是一个更"正常"的版本.

在您的.m文件中...声明WebInspector标头方法..

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

然后在同一个文件中,无论是您的应用程序委托,还是WebView子类,或者其他任何内容 ......声明一个ivar来"保持您的检查器,并使用您的Web视图实例或属性,或者其他任何方式创建一个打开它的方法. ..

@implementation AppController  { WebInspector *_inspector; }

- (IBAction)showInspector:(id)x {
   _inspector = _inspector = [WebInspector.alloc initWithWebView:_myWebView];
  [_inspector      detach:_myWebView];
  [_inspector showConsole:_myWebView];
}
....

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有