Как изменить метод класса в неизменяемом js коде? Есть код на сайте. Скрипт подгружается с облака, его изменить возможности нет. Есть html. Его изменить возможности тоже нет. FTP тоже недоступен. Есть одно условие: есть возможность добавить код только после/перед и . В этом скрипте есть класс form и метод submitForm. Как мне переопределить метод submitForm после загрузки скрипта, если у меня есть возможность добавить код только по данному условию? Сама задача: есть форма на сайте. При нажатии на кнопку отправить срабатывает form.submitForm(). код формы:
Отправить
Код submitForm:submitForm: function(e) { this.xhr && this.xhr.abort(), this.xhr = $.ajax({ dataType: "json", contentType: "application/json", url: "/api/connect/forms/submit", data: JSON.stringify(this.getFormData()), method: "POST", error: function(t) { e({ status: t.status, responseJSON: t.responseJSON, responseText: t.responseText }); } }), t.analytics && t.analytics.sendEvent("Form Submit Click"); } Мне лишь нужно дописать на success:document.location.href = "..."; Данный код работает только в консоли хрома после загрузки страницыform.prototype.submitForm = function { console.log('test') } form.prototype.submitForm() // test UPD: проблема в том, что в подгружаемом скрипте создается экземпляр класса, который я изменить не могу. На сайте есть форма, которая при изменении метода в прототипе класса все равно работает по старому методу. Возможно ли вообще такое сделать?
К сожалению, если у вас нет доступа к изменению самого скрипта или html, и не имеется возможности изменить экземпляр класса, созданный в скрипте, то изменить метод класса в этом контексте будет невозможно.
Вы можете попробовать использовать обработчики событий на элементах формы (например, на кнопке отправки формы), чтобы выполнить нужные действия после отправки формы. Но это будет работать только в случае, если вы сможете повесить такие обработчики на доступные вам элементы формы.
Если у вас нет возможности изменить код скрипта или html, и изменения в прототипе класса не дают желаемого результата, то, к сожалению, в текущем контексте вам не удастся изменить поведение метода submitForm.
К сожалению, если у вас нет доступа к изменению самого скрипта или html, и не имеется возможности изменить экземпляр класса, созданный в скрипте, то изменить метод класса в этом контексте будет невозможно.
Вы можете попробовать использовать обработчики событий на элементах формы (например, на кнопке отправки формы), чтобы выполнить нужные действия после отправки формы. Но это будет работать только в случае, если вы сможете повесить такие обработчики на доступные вам элементы формы.
Если у вас нет возможности изменить код скрипта или html, и изменения в прототипе класса не дают желаемого результата, то, к сожалению, в текущем контексте вам не удастся изменить поведение метода submitForm.