Команды консоли Javascript не работают после отправки Ajax обратно на страницу

Я контролирую сайт в консоли разработчика Chrome. Есть форма и кнопка отправки для отправки формы через ajax (я полагаю) без обновления страницы. Форма сбрасывается после отправки информации.

Я назначил некоторые атрибуты элементу формы на странице с помощью JavaScript. Есть некоторые процессы, которые не имеют значения, и я отправляю форму, но атрибуты элементов сбрасываются в новой форме. Я вынужден снова вызывать те же сценарии.

Есть ли в любом случае глобальная действительная команда с консольным кодированием, потому что веб-страница не моя? (В чистом JavaScript)

3 ответа

Решение

Есть несколько способов добиться этого.

самое простое: вероятно, будет создать фрагмент в инструментах веб-разработчика и запустить его оттуда.

Пример Chrome Snippet

Другим способом было бы создать расширение Google (с разрешениями DeclarativeContent и ActiveTab), которое может внедрить скрипт содержимого или выполнить скрипт на странице.

вы можете найти больше информации о разработке расширений chrome и фоновых событий на странице здесь: https://developer.chrome.com/extensions/background_pages

При использовании формы на html-странице значения внутри формы передаются по URL-адресу, указанному в действии формы, без проверки javascript, если определены некоторые функции обратного вызова.

<form method="post" action="your_url">
  ....
</form>

Если вы не предоставите действие, то форма будет отправлена ​​на ту же страницу, и действие javascript не будет выполнено.

Если вы хотите отправить форму, используя действие javascript, вы можете использовать один из следующих методов.

Способ 1: вызов функции JavaScript из действия

<form method="" action="Javascript:your_function()">
  ....
</form>
<script>
function your_function(){
  ...
}
</script>

В этом методе все проверки формы и отправка ajax должны выполняться вручную внутри функции. URL и МЕТОД также должны быть определены внутри вызова ajax.

Способ 2: использование формы JQuery onSubmit

<form id="target" method="" action="">
....
</form>

<script>
$( "#target" ).submit(function( event ) {
  event.preventDefault();
  alert( "Handler for .submit() called." );
});
</script>

В этом методе выполняется проверка формы, и обратный вызов для отправки функции будет иметь место только после проверки формы. URL-адрес ajax должен быть указан внутри вызова ajax.

Метод 3: Использование JQuery Ajax Validation Отправить

<form id="target" method="post" action="your_url">
....
</form>

<script>
$("#target").validate({
  submitHandler: function(form) {
    $(form).ajaxSubmit({
      dataType:  'json',    //optional
      success: function(data) {
        ...
      }
    })
  }
})
</script>

В этом методе URL и МЕТОД определяются в форме. Функция validate проверит, является ли форма действительной, и submitHandler будет выполнен, когда форма действительна. Функция обратного вызова $ (form).ajaxSubmit будет обрабатывать вызов ajax для URL-адреса и метода METHOD, заданного для формы. Этот метод хорошо подойдет для вашего вопроса. Также попробуйте другие методы, которые вам нужны, так

ПРИМЕЧАНИЕ. См. https://jqueryvalidation.org/validate/ для получения документации.

Удалить любой submit слушатель в форме. Затем прикрепите свой собственный слушатель отправки с js event.stopPropagation() перерыв.

Другие вопросы по тегам