WebView オブジェクトからプログラムで Webkit の Web Inspector をポップアップするにはどうすればよいですか?

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

質問

WebView オブジェクトからプログラムで Webkit の Web Inspector をポップアップするにはどうすればよいですか?

私は成功します Webkit の Web インスペクターを有効にする 私のWebView上で。うまく機能しており、コンテキストメニューの「要素の検査」をクリックするとポップアップできるようになりました。そして、これを押しボタンで実行したいと思います。しかし、これを行うための適切な方法が見つかりませんでした。私の DOM 知識は 10 年前で、最近の HTML DOM に関しては非常に初心者です。これを行う方法はありますか?

クラスのドキュメントを見つけました。 インスペクターコントローラー. 。これも一種の鍵だと思います。しかし、どのオブジェクトが公開されているのか、またこれをどのように使用できるのかがわかりません。

環境:

  • Mac OS X 10.6
  • Xcode 3.2.1 (iPhone SDK、プラグインなし)
役に立ちましたか?

解決

DOMやココアを経由してWebInspectorと対話するためのパブリックAPIはありません。あなたはこのAPIを求め https://bugreport.apple.com/ ので拡張要求を提出する必要があります。

InspectorControllerもWebInspectorとそのマニュアルのWebサイトでその可能性の高いバグの内部実装の詳細です。

他のヒント

ここでは、プログラムでココアからそれを開く助けるべきいくつかのコードです

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

ちょうどJSにこの機能を公開し、DOMにそれを拡張するには。

@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を宣言YOURウェブビューインスタンスまたはプロパティ、または何でも。...

@implementation AppController  { WebInspector *_inspector; }

- (IBAction)showInspector:(id)x {
   _inspector = _inspector = [WebInspector.alloc initWithWebView:_myWebView];
  [_inspector      detach:_myWebView];
  [_inspector showConsole:_myWebView];
}
....
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top