我可以在UIWebView的不同域框架中注入/运行Javascript吗?

我可以在UIWebView的不同域框架中注入/运行Javascript吗?,javascript,ios,uiwebview,Javascript,Ios,Uiwebview,因此,我可以使用-stringByEvaluatingJavaScriptFromString:,在UIWebView中加载的页面中运行Javascript,但这只会在浏览器的顶部框架中运行Javascript。我可以通过window.frames从顶部框架导航到其他相同的域框架,但这不适用于不同的域框架。有没有办法访问UIWebView中的不同域框架 我已尝试检查UIWebViewDelegate的-webViewDidFinishLoad:callback的参数是否具有不同的Javascri

因此,我可以使用-stringByEvaluatingJavaScriptFromString:,在UIWebView中加载的页面中运行Javascript,但这只会在浏览器的顶部框架中运行Javascript。我可以通过window.frames从顶部框架导航到其他相同的域框架,但这不适用于不同的域框架。有没有办法访问UIWebView中的不同域框架

我已尝试检查UIWebViewDelegate的-webViewDidFinishLoad:callback的参数是否具有不同的Javascript上下文,但看起来即使为已完成加载Javascript上下文的帧调用了回调,也仍然是顶部帧的参数


感谢您的帮助。

出于安全原因,帧之间的javascript通信仅限于使用相同协议和端口从同一主机加载内容的帧


所以你想做的事情可能就是不可能。然而,HTML5有一个名为的特性,允许跨不同主机进行通信。如果您可以控制正在加载到web视图中的HTML内容,您可能希望查看它。

我意识到这是很久以前的事了,但是如果您可以控制子框架上JS的执行,postMessage可能会完成您想要的任务。您可以使用它来有效地来回传递消息,因为您可以围绕它的使用构建一个基本的信任模型,甚至可以安全地评估事情


如果你从来没有找到解决办法,我会重新考虑@joern的建议

我理解这一点,但我希望浏览器控件之外的应用程序能够以某种方式访问控件内的帧。我正在使用浏览器,而不是网站。我无法控制页面中的HTML,因此无法为postMessage添加侦听器。我希望有某种方法可以让我在UIWebView的子框架中运行Javascript,但听起来好像没有。有一种方法可以在UIWebView中执行Javascript:stringByEvaluatingJavaScriptFromString这里记录了: