stringByEvaluatingJavaScriptFromString在iOS 6中不起作用

时间:2012-10-03 08:28:28

标签: javascript ios uiwebview ios6

我发现问题仅发生在iOS 6上,但在iOS 6以下版本正常运行。

我的应用正在从一个链接加载图片,该链接需要使用Javascript扩大其图像像素以填充UIWebView的大小。链接图像最初是像素140x24。

我看到它正在线上运行,但图像没有使用iOS 6模拟器进行扩展。它在iOS 5模拟器中工作。请帮忙。

(void)webViewDidFinishLoad:(UIWebView *)webView {

  [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName(\"img\")(0).height=\"30\";document.getElementsByTagName(\"img\")(0).width=\"280\";"];

}

1 个答案:

答案 0 :(得分:3)

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

不确定为什么它在iOS5中运行,在iOS6中WebKit可能更严格......

附加提示:要调试iOS6上的javascript错误,新功能使其变得非常简单:

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

然后,您可以使用Mac上强大的Web Inspector调试iPhone中显示的网页,并可以查看javascript控制台,DOM树等。

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