كيف يمكنني فتح مفتش الويب الخاص ب WebKit من كائن WebView الخاص بي برمجيا؟

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

سؤال

كيف يمكنني فتح مفتش الويب الخاص ب WebKit من كائن WebView الخاص بي برمجيا؟

نجحت لتمكين مفتش الويب WebKit على الويب الخاص بي. إنه يعمل بشكل جيد، والآن يمكنني فتحه بالنقر فوق "فحص عنصر" في قائمة السياق. وأريد أن أفعل هذا مع زر دفعي. لكنني لم أستطع إيجاد طريقة مناسبة للقيام بذلك. بلدي دوم المعرفة هي 10 سنوات، مبتدئ جدا على دوم HTML في هذه الأيام. هل هناك أي طريقة للقيام بذلك؟

لقد وجدت وثيقة فئة: Inspectorcontroller.. وبعد أعتقد أن هذا هو نوع من المفتاح. لكنني لا أستطيع أن أعرف ما يكشف الكائن وكيف يمكنني استخدام هذا.

بيئة:

  • Mac OS X 10.6
  • XCode 3.2.1 (iPhone SDK، لا يوجد مكون إضافي)
هل كانت مفيدة؟

المحلول

لا يوجد واجهة برمجة تطبيقات عامة للتفاعل مع Webinspector عبر DOM أو COCOA. يجب عليك تقديم طلب تعزيز في https://bugreport.apple.com/ طلب هذا API.

Inspectorcontroller هو أيضا تفاصيل تطبيق داخلي من Webinspector وعلة من المحتمل أن يكون له على موقع الوثائق.

نصائح أخرى

إليك بعض الكود الذي يجب أن يساعدك في فتحه من 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.

بالنسبة لأولئك الذين يرتبطون به عن طريق إجابة 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، أو ما من أي وقت مضى... أعلن إيفار "امسك مفتشك، وجعل طريقة لفتحها، باستخدام مثيل عرض الويب الخاص بك أو الممتلكات، أو أيا كان. ...

@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