我知道这里已经发布了类似的问题,但我查看了以前的主题,但找不到答案。我正在尝试在 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 中显示警报。
最佳答案
您的问题出在您的 450%
上。您需要将它们写在(双)引号中:'450%'
。
另外,我建议您在字符串中使用单引号,因为那样您就不必转义每个双引号。
var jsZoom25 = "alert('ran1'); document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust='450%'; alert('ran2');"
如果您必须再次使用 Javascript 执行某些操作,请先检查语法。您可以在线进行此操作,例如 Esprima .
关于javascript - stringByEvaluatingJavaScriptFromString 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28350270/