WebView可以用反斜杠评估JavaScript吗?

时间:2018-03-30 00:38:53

标签: swift webkit wkwebview

我目前正试图通过我的快速应用程序来评估我的javascript。我正在尝试将值field插入"test\test"。不幸的是,当我添加反斜杠时,它不会出现并删除第二个测试单词。有任何想法吗?谢谢!

代码:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {   
    self.webView.evaluateJavaScript("document.getElementById('_ValueTextBox').value = \"test\\test\"", completionHandler: { (result, error) in
        print("result \(result)")
        print("error \(error)")
    })
}

在网站上打印文本框:测试

1 个答案:

答案 0 :(得分:2)

使用一个反斜杠,Swift会看到...value = "test\test",这意味着它会看到制表符而不是反斜杠(JavaScript也是如此)。有两个反斜杠,Swift看到一个反斜杠,但JavaScript看到...value = "test\test",这意味着它仍然看到制表符而不是反斜杠。需要四个反斜杠,以便JS看到反斜杠。经验法则:对于反斜杠的嵌套式解释的每个额外级别,您必须加倍在源中写入的反斜杠的数量,因为每个级别将两个反斜杠减少为一个。