首页 > 解决方案 > 如何在角度输入字段上使用jquery触发输入按键

问题描述

我们正在尝试在 Angular 内置的 3rd 方网站上实现一个 Tampermonkey 脚本。

我们想在输入中输入一个 order_id,然后触发击键 enter(13)。第一部分工作正常,但似乎无法触发 enter 击键。

有没有人对此和/或提示有任何经验?

// ==UserScript==
// @name         Bol order finder
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @include      https://partner.bol.com/sdd/outbound-orders/open/FBR?order=*
// @grant        none
// @require http://code.jquery.com/jquery-3.4.1.min.js
// ==/UserScript==

(function() {
    'use strict';

    setTimeout(() => {
        //Take orderId from query params
        let orderArray = window.location.search.split('?')[1].split('=');
        //Insert queryparams into input
        $($('[data-test=search-box]')[0].shadowRoot).find('input').val(orderArray[1]);
        //Focus the element
        $($('[data-test=search-box]')[0].shadowRoot).find('input').focus();
        setTimeout(() => {
            var ev = new CustomEvent('input');
            //Trigger input so angular knows the content has changed.
            $($('[data-test=search-box]')[0].shadowRoot).find('input')[0].dispatchEvent(ev);
            setTimeout(() => {
                ev = new CustomEvent('keypress');
                ev.which = ev.keyCode = 13;
                //Trigger enter on input field
                $($('[data-test=search-box]')[0].shadowRoot).find('input')[0].dispatchEvent(ev);
                },1000)
            },1000);
        },4000);
})();

标签: jqueryangulartampermonkey

解决方案


推荐阅读