iframe

时间:2016-03-01 09:06:20

标签: javascript ios objective-c cross-domain wkwebview

我有一个WKWebView,它加载了一个名为'start.html'的本地html文件。 在此文件中,我在iframe中加载了其他本地文档。

但是我不允许在iframe内容中使用来自start.html的js,并且不允许iframe内容加载js文件。

在WKWebView之前我使用UIWebView,但我不得不迁移以提高性能

在UIWebView中,我从未遇到任何跨域安全问题。

当我在iframe上添加属性sandbox='allow-same-origin'时,我可以像这样从start.html成功执行js代码

$("#frame")[0].contentWindow.document.getElementsByClassName('password_field')[0].value = password_field

但是iframe内部的js代码和http请求(在iframe中加载的文件是一个js播放器)是不允许运行的,我得到了这些错误:

Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.

UIWebVIew和WKWebView之间有什么区别。 是否有解决方案允许在iframe中使用js代码和http请求?

1 个答案:

答案 0 :(得分:1)

WKWebView仅允许读取NSTemporaryDirectory()提供的目录中存储的本地内容。

有关详细信息,请参阅我的回答here