注入javascript以单击html按钮
我正试图将javascript注入WKWebView,以便将项目添加到网站上的购物车中 我有一个按钮:注入javascript以单击html按钮,javascript,swift,Javascript,Swift,我正试图将javascript注入WKWebView,以便将项目添加到网站上的购物车中 我有一个按钮: <input type="submit" name="commit" value="add to cart" class="button"> 运行此代码时,我收到一个nil错误。我还尝试插入类型submit作为选择器,结果仍然是nil。是否可能DOM尚未加载?我试图通过在评估javascript之前添加一个临时睡眠(3)来解决这个问题,但仍然没有任何结果。 <script&
<input type="submit" name="commit" value="add to cart" class="button">
运行此代码时,我收到一个nil错误。我还尝试插入类型submit
作为选择器,结果仍然是nil。是否可能DOM尚未加载?我试图通过在评估javascript之前添加一个临时睡眠(3)来解决这个问题,但仍然没有任何结果。
<script>
function testing() {
//your code here
}
</script>
<!-- add onclick to yours html button -->
<input type="button" value = "Test" onclick="testing();">
功能测试(){
//你的代码在这里
}
您可以按名称获取它,然后向其中添加一个单击侦听器
document.getElementsByName("commit")[0].addEventListener('click', myFunction, false);
function myFunction() {
//your code here
}
你差点就成功了。但是在HTML元素附加事件侦听器之前,您正在该元素上调用一个
click()
。您应该首先添加一个eventListener
,然后调用click事件
试试这个:
请记住,
document.getElementsByName
返回与查询匹配的元素数组,因此返回[0]
。如果您有另一个名为commit的输入,这可能会导致问题。对不起,我忘了添加我无法更改按钮的HTML结构
document.getElementsByName("commit")[0].addEventListener('click', myFunction, false);
function myFunction() {
//your code here
}
webView.evaluateJavaScript("document.getElementsByName(\"commit\"]')[0].addEventListener('click', event => { <YOUR CODE GOES HERE> });") { (result, error) in
if error != nil {
print("Error: ", result)
}
}
webView.evaluateJavaScript("document.getElementsByName('[name=\"commit\"]')[0].click()") { (result, error) in
if error != nil {
print("Error: ", result)
}
}