knockout.js 如何从Chrome扩展的内容脚本更新knockout js输入字段?

nwlls2ji  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(131)

我正在创建我的第一个复杂的chrome扩展,使用javascript来更新第三方网站上的输入字段。经过几个小时的研究,我发现kockout js正在被使用。Here我找到了答案,但我不清楚如何实现它。

<input class="admin__control-text" type="text" data-bind="
        event: {change: userChanges},
        value: value,
        hasFocus: focused,
        valueUpdate: valueUpdate,
        attr: {
            name: inputName,
            placeholder: placeholder,
            'aria-describedby': noticeId,
            id: uid,
            disabled: disabled,
            maxlength: 255
    }" name="subscriber_telephone" aria-describedby="notice-HWWKNMI" id="HWWKNMI" maxlength="255">

我试过这个:document.querySelector('[name="subscriber_telephone"]').value = value输入值并更新视图,但当我按下搜索按钮时什么也没发生。我读到我需要更新视图模型,但不知道怎么做。

6kkfgxo0

6kkfgxo01#

感谢wOxxOm的评论和this的回答,我达到了我想要的。

const inputField =  document.querySelector('[name="subscriber_telephone"]')
    if (inputField ) {
      inputField .focus();
      inputField .select();
      if (!document.execCommand('insertText', false, value)) {
        // Fallback for Firefox: just replace the value
        inputField .value = value;
      }
      inputField .dispatchEvent(new Event('change', {bubbles: true}));
    }

相关问题