javascript onsubmit更改字段值

标签 javascript google-chrome-extension

我正在编写一个 javascript chrome 扩展,其中包含一个 content_script:

  • 读取用户提交的数据
  • 在需要时修改用户数据
  • 删除用户可能插入的前缀“myprefix:”
  • 改为提交修改后的文本。

我已经编写了一些成功更新所需值的代码(我可以看到输入字段值在提交时被更改,就在浏览器离开页面之前)。但是,有时会提交未修改的值(前缀被删除之前的值),并且这种情况会间歇性地发生。

到目前为止我有这段代码:

document.addEventListener('DOMContentLoaded', function () {
    onsubmitModifier();
}

function onsubmitModifier() { 
    for (var i = 0; i < document.forms.length; i++) {
        document.forms[i].addEventListener("submit", function () {
            var elementList = document.getElementsByTagName("INPUT");
            for (var i = 0; i < elementList.length; i++) {
                if (elementList[i].value.toLowerCase().startsWith("myprefix:")) {
                    // data modification is removed for testing
                    elementList[i].value = elementList[i].value.substring("myprefix:".length);
                }
            }
        }
    }
}

最佳答案

您可以尝试先停止默认事件,然后在 setTimeout block 中调用 form.submit()

关于javascript onsubmit更改字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23806172/

相关文章:

javascript - Twitch channel 状态 Chrome

javascript - 在 ContextMenu Click 上发送请求到注入(inject)的内容脚本

google-chrome - 如何在chrome扩展的选项页面和背景页面之间进行通信

javascript - float:使所有 Y 轴的刻度线对齐

javascript - val() 在实际包含值时显示空字符串

javascript - 不同 block 中的事件部分开始和结束标记

javascript - 我可以在没有后台脚本的情况下从 popup.js 向内容脚本发送消息吗?

javascript - 将 Object.defineProperties 与符号一起使用是否有效?

javascript - 在未聚焦时在文本框中迭代写入单词,并在聚焦时停止

javascript - 如何停止 chrome 扩展程序?