【问题标题】:How to get HTML element from Webview in Cocoa?如何从 Cocoa 中的 Webview 获取 HTML 元素?
【发布时间】:2017-11-29 09:58:49
【问题描述】:

我正在尝试从 Webview 获取 HTML 元素,我尝试了现有的 StackOverflow 答案,但它不适合我。

Getting source HTML from a WebView in Cocoa -- 不适合我。

@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 是我的班级名称。

Result 是字符串的值。 -- 这里我是空的。

任何帮助将不胜感激。

【问题讨论】:

标签: javascript html objective-c cocoa webview


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    目标-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) {
    
            }
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-09
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 2012-01-02
      • 2016-12-06
      相关资源
      最近更新 更多