stringByEvaluatingJavaScript对象没有ID

时间:2017-02-18 11:02:01

标签: javascript webview swift3 stringbyevaluatingjavascr

我正在使用self.webView.stringByEvaluatingJavaScript(from: "document.getElementById('username').value = \"\(username)\"")输入用户名,而且工作正常。

其他网页包含此字段:

<input type="text" maxlength="255" name="user" class="stdWidth" value="">

和这个字段:

<input type="password" maxlength="255" password="1" name="pass" class="stdWidth">

我如何使用stringByEvaluatingJavaScript将文字放入此字段,因为它没有ID?

我试过"document.getElementByTagName",但它没有用。

我要输入的网页是:Link

1 个答案:

答案 0 :(得分:3)

请尝试这样做。您有class字段,因此请使用document.querySelector()选择您的元素。例如下面。

var input = document.querySelector(".stdWidth");
input.value = "\"Hello\"";
//add event listener on edit like this..
input.addEventListener('change',function(){
var value = this.value;
console.log(value);//this is current value of your field
});
  
<!-- begin snippet: js hide: false console: true babel: false -->

<强>更新

getElementsByTagName()方法返回文档中具有指定标记名称的所有元素的集合,作为NodeList对象。

var input = document.getElementsByTagName('input');
input[0].value = "\"username\"";
input[1].value = "\"password\"";
<input type="text" maxlength="255" name="user" class="stdWidth" value="">
<input type="text" maxlength="255" name="pass" class="stdWidth" value="">