使用JavaScript自动填充文本字段的替代方法?

时间:2019-01-02 11:43:31

标签: javascript swift wkwebview autofill

我正在尝试使用username/password在网站上自动填充javascript字段,但是使用.value不适用于该特定页面。文本已填写,但网站报告username/password为空,好像没有任何数据一样。 Safari的自动填充功能在iPhone上也经常会遇到问题,但是Chrome可以完美地处理它,因此很显然有一种方法。

我正在快速使用WkWebView并评估javascript以尝试自动填充数据。

如果有帮助,请访问以下网站:login.usfca.edu/login/login

我尝试过的代码:

document.getElementById('username').value='TestUsername';
document.getElementById('password').value='TestPassword';

2 个答案:

答案 0 :(得分:0)

您可以使用此代码自动填充       

<head>
  <meta charset="utf-8">
  <title>Prefill inputs</title>
</head>

<body><p>Example Enter Apple...</p>
 Enter: <input id="main" class="input_1" list="competition" type="text" name="competition">
  <datalist id="competition" class="listos">
    <option value="Mango">Mango</option>
    <option value="Apple">Apple</option>
    <option value="Orange">Orange</option>
  </datalist>



  <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
  <script>
    const $main = $('#main');
    const $inputs = $('.sub');

    const values = {
      trigger: 'community shield',
      communityShield: ['one', 'two', 'three']
    };

    $main.on('keyup input', function () {
      const inputValue = this.value.toLowerCase()
      if (inputValue === values.trigger) {
        $inputs.each(function (i, el) {
          el.value = values.communityShield[i];
        });
      }
    });
  </script>
</body>

</html>

答案 1 :(得分:0)

  

注意:我不是一个敏捷的程序员,但是考虑到您使用纯HTML编写脚本。 如果(如果您使用的不是纯HTML),只需检查您的元素以获取id相同的元素,这样就可以确保引用正确的id

  • 如果要使用id分配值,则必须为输入提供getElementById


演示-

document.getElementById('username').value='TestUsername';
document.getElementById('password').value='TestPassword';
<form action="#" autocomplete="on">
  username: <input type="text" name="username" id="username"><br><br>
  password: <input type="password" name="password" id="password"><br><br>
  <input type="submit">
</form>

autocomplete 可选中,您可以在填写输入内容时从浏览器中缓存建议。