【问题标题】:stringByEvaluatingJavaScriptFromString is not working in iOS 6stringByEvaluatingJavaScriptFromString 在 iOS 6 中不起作用
【发布时间】:2012-10-03 08:28:27
【问题描述】:

我发现问题仅发生在 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 ios uiwebview ios6


    【解决方案1】:

    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 应用程序的“高级”首选项选项卡中启用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      相关资源
      最近更新 更多