我正在嘗試使用“evaluateJavascript”從 iOS 呼叫帶有引數的 Javascript 函式,一切正常,但未發送引數值,請參閱下面的代碼
-(void) callJavascriptFunc: (NSString*)val{
//Example val is "Apple" string
[self.webview evaluateJavascript:@"exampleFuncName(val, '\(someConstant)')" completionHandler: nil];
}
Javascript:
exampleFuncName(value1: string, value2: string){
console.log("values == ", value1 " , " value2)
}
控制臺: ReferenceError:找不到變數:val
我可以呼叫該函式,但無法傳遞變數。使用 evaluateJavascript 呼叫函式時是否存在語法問題
注意:我已經檢查了 val 有一個值。
uj5u.com熱心網友回復:
您需要構建一個包含傳遞引數的字串并將其用作evaluateJavascript. 像這樣:
-(void) callJavascriptFunc: (NSString*)val{
NSString* script = [NSString stringWithFormat:@"exampleFuncName('%@', '\(someConstant)')", val];
[self.webview evaluateJavascript:script completionHandler: nil];
}
但是,根據引數值的來源,您應該確保不可能進行代碼注入!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/405061.html
標籤:
