Tampermonkey и как pnet форма - PullRequest
0 голосов
/ 20 января 2020

Это мой первый пост здесь, и я все еще учусь кодировать. В настоящее время я работаю над проектом для работы и пытаюсь обновить несколько полей при загрузке страницы. Эта указанная c веб-страница использует angular в форме as pnet, и я попытался изменить поля двумя способами:

  1. При нажатии кнопки поля будут обновляться каждый раз, но это проблематично c, так как я пытаюсь автоматизировать, и поэтому было бы здорово, если бы я мог автоматически обновлять поля, сохранять и переходить к следующей странице
  2. При загрузке страницы это выглядит как работать иногда, а иногда это не будет работать вообще. Я проверил, что загрузка работает, потому что я использовал оповещение, но поля просто не меняются

Форма была прикреплена как снимок экрана, и пример поля, которое я хочу отредактировать, также прикреплен как скриншот.

Спасибо!

Форма 1

Поле в форме 2

    $('#MainContent > div.container_24.clearfix > div > h1').append("<button class='float_right' 
        id='ProjectHelp' type=button>Project</button>");

    window.onload = function() {myFunction()};
    function myFunction() {
        alert('hi');
        var input = $('#dollarsPerPoint');
        input.val('4');
        $('#autoExpireAfterMonths').val('1');
        input.trigger('input'); // Use for Chrome/Firefox/Edge
        input.trigger('change'); // Use for Chrome/Firefox/Edge + IE11
        input.change();
        var changeEvent = document.createEvent ("HTMLEvents");
        changeEvent.initEvent ("change", true, true);
        var element1 = angular.element('a[ng-click="vm.saveChanges()"]');
        element1.trigger('click');
        element1.click();

        var element2 = $('a[ng-click="vm.saveChanges()"]')
        element2.trigger('click');
        element2.click();
    }
    (function($, ng) {
      'use strict';

      var $val = $.fn.val; // save original jQuery function

      // override jQuery function
      $.fn.val = function (value) {
      // if getter, just return original
      if (!arguments.length) {
      return $val.call(this);
    }

    // get result of original function
    var result = $val.call(this, value);

    // trigger angular input (this[0] is the DOM object)
    ng.element(this[0]).triggerHandler('input');

    // return the original result
    return result;
  }
  })(window.jQuery, window.angular);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...