Есть код на сайте. Скрипт подгружается с облака, его изменить возможности нет. Есть html. Его изменить возможности тоже нет. FTP тоже недоступен. Есть одно условие: есть возможность добавить код только после/перед
<head> и <body>
. В этом скрипте есть класс form и метод submitForm. Как мне переопределить метод submitForm после загрузки скрипта, если у меня есть возможность добавить код только по данному условию?
Сама задача: есть форма на сайте. При нажатии на кнопку отправить срабатывает form.submitForm().
код формы:
<div class="form-wrapper common-form" data-layout="vertical" data-style="colored">
<div class="input-wrapper js-input-wrapper">
<input class="js-input" type="text" name="Имя" placeholder="Имя" spellcheck="false" data-sort="0">
</div>
<div class="input-wrapper js-input-wrapper">
<input class="js-input" type="text" name="Мэйл" placeholder="Мэйл">
</div>
<div class="input-wrapper js-input-wrapper">
<input class="js-input" type="text" name="Номер телефона" placeholder="Номер телефона">
</div>
<div class="button">
<div class="caption">Отправить</div>
</div>
</div>
Код 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: проблема в том, что в подгружаемом скрипте создается экземпляр класса, который я изменить не могу. На сайте есть форма, которая при изменении метода в прототипе класса все равно работает по старому методу. Возможно ли вообще такое сделать?