stringByEvaluatingJavaScriptFromString在iOS 6中不起作用

我看到问题只发生在iOS 6上,但在iOS 6以下版本中工作正常。

我的应用程序正在从一个链接加载图像,需要放大其图像像素以通过使用Javascript填充UIWebView的大小。 链接图像最初是以像素140×24。

我看到它正在运行,但图像没有被放大使用iOS 6模拟器。 它在iOS 5模拟器中工作。 请帮忙。

(void)webViewDidFinishLoad:(UIWebView *)webView { [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName(\"img\")(0).height=\"30\";document.getElementsByTagName(\"img\")(0).width=\"280\";"]; } 

在JavaScript中获取数组的第n个元素的语法是使用方括号,而不是括号。 所以使用document.getElementsByTagName("img")[0]不是document.getElementsByTagName("img")(0)

不知道为什么它在iOS5中工作,WebKit可能在iOS6中更严格…

附加提示:要在iOS6上debuggingjavascript错误,一个新function使其非常简单:

  • 转到iPhone的“设置”应用程序,input“Safari”设置,然后点击底部的“高级”,然后从那里启用“WebKit Inspector”
  • 在屏幕上显示要debugging的页面(即启动您的应用程序并转到包含WebView的屏幕,以使其可见)
  • 通过USB电缆将iPhone连接到Mac
  • 在Mac上打开Safari.app,进入“开发”菜单(1) ,select带有iPhone名称的菜单项并在子菜单中select您的应用程序。

然后,您可以使用Mac中强大的Web Inspector来debuggingiPhone中呈现的网页,并且可以查看JavaScript控制台,DOM树等。

(1)如果您的Mac上的Safari没有“开发”菜单,则可以在Safari应用程序的“高级”首选项选项卡中启用它。