我发现问题仅发生在 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\";"];
}
最佳答案
JavaScript 中获取数组第 n 个元素的语法是使用方括号,而不是圆括号。因此,请使用 document.getElementsByTagName("img")[0]
而不是 document.getElementsByTagName("img")(0)
。
不知道为什么它在 iOS5 中工作,WebKit 在 iOS6 中可能更严格......
附加提示:在 iOS6 上调试 javascript 错误,一项新功能使其变得非常简单:
- 转到 iPhone 中的“设置”应用程序,进入“Safari”设置并点按底部的“高级”,然后从此处启用“WebKit 检查器”
- 在屏幕上显示要调试的页面(即启动您的应用并转到包含 WebView 的屏幕以使其可见)
- 通过 USB 数据线将 iPhone 连接到 Mac
- 在 Mac 上打开 Safari.app,转到“开发”菜单(1),选择包含您 iPhone 名称的菜单项,然后在子菜单中选择您的应用程序。
然后,您将能够使用 Mac 上强大的 Web Inspector 来调试 iPhone 中显示的网页,并可以查看 javascript 控制台、DOM 树等。
(1) 如果您的 Mac 上的 Safari 中没有“开发”菜单,您可以在 Safari 应用程序的“高级”偏好设置选项卡中启用它。
关于javascript - stringByEvaluatingJavaScriptFromString 在 iOS 6 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12704593/