stringByEvaluatingJavaScriptFromString未被调用

时间:2015-02-05 17:25:33

标签: javascript ios swift

我知道这样的问题已经发布在这里,但我查看了之前的主题并且无法找到答案。我试图在swift中使用stringByEvaluatingJavaScriptFromString,但它无法正常工作。请帮忙! 代码:

import UIKit
import Foundation
import iAd

class zmanimViewController: UIViewController, ADBannerViewDelegate, UIWebViewDelegate {
//variables*******************************************
var adBannerView = ADBannerView(adType: ADAdType.Banner)
@IBOutlet weak var webView: UIWebView!

//functions*******************************************


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    self.canDisplayBannerAds = true
    webView.delegate = self

    var url = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("testHTML", ofType: "html")!)
    loadLocalHtmlFile(webView, url!)

    //var jsZoom25 = "alert(\"ran\");"

    //changeWebViewFontSize(2, webView)


}
func webViewDidFinishLoad(webView: UIWebView) {
    //changeWebViewFontSize(2, webView)
    var jsZoom25 = "alert(\"ran1\"); document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust=450%; alert(\"ran2\");"
    webView.stringByEvaluatingJavaScriptFromString(jsZoom25)

}


override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

提前致谢! 附加信息: 如果我只使javascript“alert('ran');”,它会显示警报,但它不会显示我需要工作的javascript中的警报。

1 个答案:

答案 0 :(得分:1)

您的问题出在450%。你需要用(双)引号来写这些:'450%'

此外,我建议在字符串中使用单引号,因为这样您就不必为每个双引号转义。

var jsZoom25 = "alert('ran1'); document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust='450%'; alert('ran2');"

如果您必须再次使用Javascript,请先检查语法。您可以使用例如Esprima在线完成此操作。