iOS 6多个UIWebViews:Javascript只在一个中运行

时间:2012-11-30 22:10:55

标签: iphone ios ipad ios6

iOS 6 iPad应用程序在两个UIWebView中显示内容。如果两个Web视图都包含jquery图像旋转器,则一次只能运行一个。正在运行< iOS 6,都能正常运行。

如果重新加载非动画webview的内容,它将开始工作,而另一个停止。此外,仅在模拟器中,我有时可以通过单击/拖动来启动已停止的Web视图(以及另一个停止)。

如果其中一个Web视图中没有javascript,则重新加载已停止的Web视图不会停止另一个的运行。

我的第一个想法是这是一个焦点问题,但最后一点似乎反驳了这一点,并指出两种网络观点之间存在某种污染。两个旋转器具有相同的选择器和相同的js脚本,但是js文件在本地缓存并且被唯一地重命名以消除缓存过程中的任何踩踏。

我在iOS 6发行说明中找不到任何描述不同UIWebView之间焦点变化的内容。

Web视图位于XIB中,但不是同一父UIView的兄弟。

理想的行为是显然没有任何网络视图进入睡眠状态。

2 个答案:

答案 0 :(得分:1)

您是否尝试过将一个WebView设置为3个webView的大小,并在1个UIWebView中使用3个iFrame加载每个启用了JavaScript的页面?

答案 1 :(得分:1)

JavaScript可以在多个UIWebView中运行,但它取决于JavaScript。使用JQuery或其他外部JavaScript代码可能会出现问题,以防您将其与href链接。您可以通过将所有外部JavaScript库的代码复制到网页HTML中来解决这些问题。这就是为什么简单的JavaScript工作正常的原因。例如:

Screenshot of JavaScript in multiple web views

这是一个UITableView,在每个UITableViewCell中都有一个UIWebView。在webViewDidFinishLoad中,我执行[webView stringByEvaluatingJavaScriptFromString:@"document.write('hey hallo'+new Date().getTime())"];