0

UIWebViewのビュー内で最上位の要素を取得しようとしています。

私はしようとしてきました

NSString *topElementInView = [self.webView stringByEvaluatingJavaScriptFromString: @"document.elementFromPoint(0, 0);"];

しかし、それは何も返しません。コードは、WebViewのロードが完了した後に実行されます。

4

2 に答える 2

0

次に、ViewController.mの例を示します。

#import "ViewController.h"

@interface ViewController () <UIWebViewDelegate>

@property (nonatomic) UIWebView *webView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];


    NSString *HTML = @"<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv=\"content-type\" content=\"text/html; charset=“utf-8\"> <!-- Internal CSS --> <style type=\"text/css\"> </style> <!-- Extrernal CSS --> <link rel=\"stylesheet\" href=\"css/normalize.css\"> <!-- jQuery  --> <script src=\"http://code.jquery.com/jquery.min.js\" type=\"text/javascript\"></script> <!-- Internal JavaScripts --> <script type=\"text/javascript\"> </script> </head> <body> <a href=\"https://www.google.com/images/srpr/logo11w.png\"> <img src=\"https://www.google.com/images/srpr/logo11w.png\" alt=\"google\"> <p>This is a Google image.</p> </a> </body> </html>";

    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [self.view addSubview:self.webView];

    self.webView.delegate = self;

    [self.webView loadHTMLString:HTML baseURL:nil];

}


- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString *htmlInner = [self.webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"];
    NSLog(@"inner\n%@",htmlInner);

    NSString *htmlOuter = [self.webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];
    NSLog(@"outer\n%@",htmlOuter);
}
于 2014-10-15T19:19:35.877 に答える
-6
- (void)viewDidLoad {   
 js=dic;
//NSString *js;  (.h)
[self.myWebView loadHTMLString:js baseURL:nil];
}

//委任

- (void)webViewDidFinishLoad:(UIWebView *)webView {
[myWebView stringByEvaluatingJavaScriptFromString:js];
}
于 2012-06-14T10:46:37.753 に答える