我正在尝试使用以下语句为UIWebview元素停止html5视频
[webView stringByEvaluatingJavaScriptFromString: @"document.querySelector('video').pause();"];
但它对我不起作用。我尝试了带有onclick事件的javascript代码并且它可以工作。
这里是objective-c代码
(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
// encode the string
NSString * result = [[[request URL]absoluteString]
stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
// extract the path components from the result string
NSArray *pathElements = [[NSArray alloc] initWithArray:[result pathComponents]];
// when click the a tag the video should stop
if([pathElements[[pathElements count] -1] isEqualToString:@"tester"]){
[webView stringByEvaluatingJavaScriptFromString: @"document.querySelector('video').pause();"];
}
}
这里是html5代码
<video width="720px" height="396px" controls="controls" >
<source src="Video.m4v" type="video/mp4">
</video>
<!-- a tag only for test purpose -->
<p><a href="/tester" target="_blank">TESTLINK</a></p>
有什么想法吗?
答案 0 :(得分:0)
在页面加载之前调用shouldStartLoadWithRequest,它会询问你是否应该在StartLoadWithRequest
UIWebViewDelegate Protocol Reference
web视图:shouldStartLoadWithRequest:navigationType:
在网页视图开始加载框架之前发送。
所以你可能需要一个Button和一个工具栏,或者在页面加载后触发一个方法来执行代码的方法,你也应该确保“document.querySelector('video')”实际返回调用时的视频标记。