我知道这样的问题已经发布在这里,但我查看了之前的主题并且无法找到答案。我试图在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中的警报。
答案 0 :(得分:1)
您的问题出在450%
。你需要用(双)引号来写这些:'450%'
。
此外,我建议在字符串中使用单引号,因为这样您就不必为每个双引号转义。
var jsZoom25 = "alert('ran1'); document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust='450%'; alert('ran2');"
如果您必须再次使用Javascript,请先检查语法。您可以使用例如Esprima在线完成此操作。