当前位置:  开发笔记 > 编程语言 > 正文

UIWebView:你能禁用Javascript吗?

如何解决《UIWebView:你能禁用Javascript吗?》经验,为你挑选了2个好方法。

您可以在移动Safari和Cocoa的WebView中禁用Javascript,但我看不到这样做的方法UIWebView.

我对么?

关于获取UIWebView使用Javascript中显示的页面标题,我询问了这个问题.我担心如果Javascript被禁用会失败,但似乎API不允许禁用Javascript.

如果Javascript无法停用UIWebView,则会使我之前的问题无法解决.



1> BadPirate..:

有一种方法!使用iOS 5.1及更高版本部分支持的内容安全策略和自定义标头:

X-WebKit-CSP: script-src none;

你可以告诉UIWebKit完全不允许在页面上使用javascript.(或选择性只允许脚本从特定的域,在详细信息规范.

要从您控制的服务器执行此操作,您必须修改页面的响应标头以包含X-WebKit-CSP标头...从本地页面(设备上的纯文本或HTML数据)执行此操作,您必须定义并注册自定义NSURLProtocol以加载您的页面,并在您制作的NSHTTPURLResponse中发送标题:

NSDictionary *headers = [NSDictionary dictionaryWithObjectsAndKeys:
                         @"script-src none",@"X-WebKit-CSP",
                         @"text/html",@"Content-type",
                         encoding,@"Content-encoding",
                         nil];
NSHTTPURLResponse *urlResponse = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL
                                                         statusCode:200
                                                        HTTPVersion:@"1.1"
                                                       headerFields:headers];
[self.client URLProtocol:self didReceiveResponse:urlResponse cacheStoragePolicy:NSURLCacheStorageAllowedInMemoryOnly];


如果您使用新的WKWebView而不是UIWebView,有一种方法可以做到这一点.这是在这里回答的.http://stackoverflow.com/a/34404676/1239426

2> Stefan Arent..:

没有公共API来禁用Javascript.因此,假设它不会被禁用是相当安全的.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有