我目前正试图通过我的快速应用程序来评估我的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)")
})
}
在网站上打印文本框:测试
答案 0 :(得分:2)
使用一个反斜杠,Swift会看到...value = "test\test"
,这意味着它会看到制表符而不是反斜杠(JavaScript也是如此)。有两个反斜杠,Swift看到一个反斜杠,但JavaScript看到...value = "test\test"
,这意味着它仍然看到制表符而不是反斜杠。需要四个反斜杠,以便JS看到反斜杠。经验法则:对于反斜杠的嵌套式解释的每个额外级别,您必须加倍在源中写入的反斜杠的数量,因为每个级别将两个反斜杠减少为一个。