我正在写一个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);
                    }
                }
            }
        }
    }
    

    最佳答案

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

    09-07 20:30