我可以注入/运行Javascript在不同的域框架在UIWebView
Can I inject / run Javascript in different-domain frames in UIWebView?
所以我可以通过使用-stringByEvaluatingJavaScriptFromString:
在UIWebView中加载的页面中运行Javascript,但这只会在浏览器的顶部框架中运行Javascript。我能够通过window.frames
从顶部框架导航到其他同域框架,但这对不同的域框架不起作用。是否有办法在UIWebView中访问不同的域框架?
我试过检查是否参数到UIWebViewDelegate的-webViewDidFinishLoad:
回调有一个不同的Javascript上下文,但它看起来像即使当回调被调用的帧已经完成加载Javascript上下文仍然是顶帧。
感谢您的帮助。
出于安全原因,javascript帧之间的通信仅限于从同一主机(使用相同的协议和端口)加载其内容的帧。
所以你想做的事情可能是不可能的。然而,HTML5有一个叫做postMessage的特性,它允许跨不同主机进行通信。如果你可以控制加载到网页视图中的HTML内容,你可能需要检查一下
我意识到这是一段时间前,但postMessage可能做什么你之后,如果你可以控制JS的执行子框架。您可以使用它来有效地来回传递消息,并且由于您可以围绕它的使用构建基本的信任模型,因此甚至可以安全地进行eval。
如果你从来没有找到解决这个问题的办法,我会重新考虑@joern的建议!
相关文章:
- 正在阻止UIWebView警报
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 如何访问UIWebView'的子窗口上下文
- 在iOS 4.3中未调用UIWebView shouldStartLoadWithRequest
- 在play2框架中向json对象添加下拉列表项
- 如何在离子框架+有角度的框架中制作顶部标签
- 如何在另一个html文件的框架中包含图像
- 如何重置内嵌框架
- 聚合物是一个框架而不是一个库.如何模块化地使用web组件
- 用于图像和基于浏览器的图表的图表框架
- 没有装饰的小型浏览器框架
- Chrome开发工具中使用了哪些框架和库
- 闭包js框架-将ArrayBuffer转换为字符串
- 类似于Prism的Knockout js框架
- UIWebview赢得't通过基本身份验证加载动态加载的资源(通过jQuery mobile)
- 在其他javascript框架模板中运行angular指令
- 使用HTML5 JS框架进行本地存储
- 发布到iframe-在iframe而不是父框架中呈现的页面
- 框架集+列IE10
- 我可以注入/运行Javascript在不同的域框架在UIWebView