简体   繁体   English

如何在Cocoa中从Webview获取HTML元素?

[英]How to get HTML element from Webview in Cocoa?

I am trying to fetch HTML element from Webview, I tried existing StackOverflow answer but it's not working for me. 我正在尝试从Webview获取HTML元素,我尝试了现有的StackOverflow答案,但对我来说不起作用。

Getting source HTML from a WebView in Cocoa -- not working for me. 从Cocoa中的WebView获取源HTML-对我不起作用。

@IBOutlet var FacebookWebview: WebView!

let someHTML = FacebookWebview.stringByEvaluatingJavaScript(from: "document.getElementsByClassName('linkWrap noCount')[0].innerHTML;") as NSString?

print("FetchUser:-\(someHTML)")
 HTML element --> <div dir="ltr" class="linkWrap noCount">Result</div> 

linkWrap noCount is my class name. linkWrap noCount是我的班级名称。

Result is the value of the string. 结果是字符串的值。 -- here I am getting null. -在这里我空了。

Any help will be appreciated. 任何帮助将不胜感激。

尝试这个:

let html = yourWebView.stringByEvaluatingJavaScriptFromString("document.documentElement.outerHTML")

OBJECTIVE-C 目标C

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request    navigationType:(UIWebViewNavigationType)navigationType 
{

    if (navigationType == UIWebViewNavigationTypeLinkClicked) {

        [[UIApplication sharedApplication] openURL:[request URL]];

        return NO;
    }

    return YES;

}

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

    // JS Injection hack to solve the target="_blank" issue and open a real browser in such case.

    NSString *JSInjection = @"javascript: var allLinks = document.getElementsByTagName('a'); if (allLinks) {var i;for (i=0; i<allLinks.length; i++) {var link = allLinks[i];var target = link.getAttribute('target'); if (target && target == '_blank') {link.setAttribute('target','_self');link.href = 'newtab:'+link.href;}}}";

    [webView stringByEvaluatingJavaScriptFromString:JSInjection];

}


 - (void)VideoButton_Click:(id)sender{


        @try {


            NSString *url=@"Write link here";

            [videowebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];

             videowebView.scrollView.bounces = NO;
            [videowebView setMediaPlaybackRequiresUserAction:NO];

        }
        @catch (NSException *exception) {

        }

    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM