2015-02-05 53 views
0

我知道這樣的問題已經發布在這裏,但我查看了前面的線程,無法找到答案。我想在swift中使用stringByEvaluatingJavaScriptFromString,並且它不工作。請幫忙! 代碼: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

你是什麼意思與'不工作'?有沒有錯誤? – Christian 2015-02-05 17:58:37

+0

JavaScript未被調用。 – 2015-02-05 18:54:44

回答

1

您的問題在於您的450%。您需要用(雙)引號將它們寫入:'450%'

此外,我建議在你的字符串中使用單引號,因爲那樣你就不必逃避每一個雙引號。

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

如果您必須再次使用Javascript,請首先檢查語法。您可以在線使用例如Esprima

+0

工作正常!謝謝 – 2015-02-05 18:56:46