您可以在移动Safari和Cocoa的WebView中禁用Javascript,但我看不到这样做的方法UIWebView
.
我对么?
关于获取UIWebView
使用Javascript中显示的页面标题,我询问了这个问题.我担心如果Javascript被禁用会失败,但似乎API不允许禁用Javascript.
如果Javascript无法停用UIWebView
,则会使我之前的问题无法解决.
有一种方法!使用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];
没有公共API来禁用Javascript.因此,假设它不会被禁用是相当安全的.