javascript - stringByEvaluatingJavaScriptFromString 在 iOS 6 中不起作用

标签 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\";"];

}

最佳答案

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/

相关文章:

javascript - 在createLink中插入一个javascript变量

javascript - Highcharts 是否支持数据分组?

ios - 如何将所有枚举值作为数组获取

ios - 检查来自 Alamofire 和 Swift 的多个异步响应

javascript - 在 UIWebview 中显示网站中的特定 HTML/Javascript 元素

ios - UIWebView 注入(inject)在 webViewDidStartLoad 中隐藏导航栏

javascript - React Redux 无法解析自己的模块

javascript - 检测 jquery mobile 上的更改页面

ios - 无法在 UILabel 中显示我的文本

ios - 如何使用 UIWebView 在 Safari 中打开除某些链接之外的所有链接?