自动将数据添加到Shadow Dom元素

时间:2017-03-06 12:49:05

标签: javascript shadow-dom

我需要自动添加密码和用户名,然后点击"输入"阴影DOM元素:

<input type="text" class="_y" aria-required="true" autocapitalize="off" autocorrect="off" maxlength="30" name="username" placeholder="username" value="">
#shadow-root (user-agent)
<div id="inner-editor"></div>
<div pseudo="-webkit-input-placeholder" id="placeholder" style="visibility: visible; text-overflow: clip;">Username</div>
</input>
</div>

第二个字段是相同的。

我有添加代码:

document.querySelector('input').value = "username";
document.querySelectorAll('input')[1].value ="password";

它有效,我在必要的字段中看到了我的用户名和密码。但是当我使用下一个代码点击按钮时:

document.querySelector('button').click()  

我看到进程开始然后什么都没有,字段变空了。

按钮代码:

 <span class="_r ">
<button class="_a">Enter</button>
</span>

如果我手动执行此操作,一切都可以正常运行。为什么自动模式不起作用?

1 个答案:

答案 0 :(得分:0)

我是因为当您点击<button>时,您的表单就会被发送。

如果您未指定发送表单的位置,则会再次请求当前页面,并重置<input>标记的内容。

您应该像这样设置onsubmit属性:

<form onsubmit="return false">

...或调用将处理表单的JavaScript函数(如果您不想导航到页面,则返回false。)

<form onsubmit="process()">

或者在action属性中指定发送表单的URL:

<form action="/form">