Форма отправки не происходит в Google Chrome Периодически - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть веб-страница, которая содержит iFrame. Эта веб-страница автоматически отправляет форму стороннему URL-адресу, который загружает содержимое в iFrame. В настоящее время я делаю автоматическую отправку формы в document.ready () через jQuery, и похоже, что chrome не передает эту форму с перерывами.

Ниже приведен пример HTML на моей веб-странице.

<form id="form_init" target="myFrame" action="https://somethirdpartyurl.com/req.jsp?queryParam=value" method="post" class=" edit accessAid">
    <input name="_cs" id="_cs2" value="blah" type="hidden">
    <input name="cs" id="cs2" value="blah" type="hidden">
    <input type="hidden" name="howdy" value="oneMoreBlah">
    <input type="hidden" name="myUrl" value="http://localhost:8000/myapp?_eventId=processing&amp;sessionId=123">
    <input type="hidden" name="MD" value="1234567891234567">
    <div id="submit_button">
        <p>Attention: This form can't be displayed because JavaScript is disabled in your browser.</p>
        <p class="buttons">
            <span class="buttonAsLink">
                <input type="submit" name="" class="button autoSubmit" value="Click here to continue">
            </span>
        </p>
    </div>
</form>

<iframe name="myFrame" id="myFrame" width="625px" height="480px" frameborder="0" marginheight="0" scrolling="auto" src="https://www.mywebsite.com/grey_spacer.gif"></iframe>

<script src="http://www.localhost:8000/myapp/webstatic/js/loadFrame.js" type="text/javascript"></script>

Ниже приведен фрагмент файла loadFrame.js.

$(document).ready(function() {
    $("#submit_button").length && ($("#submit_button").hide(), $("#submit_button input").hasClass("autoSubmit") && $("#submit_button input")[0].form.submit());
});

Обратите внимание, что все условия перед командой $("submit_button input")[0].form.submit() выполнены успешно. Я подтвердил это в журналах консоли.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что Chrome периодически не передает вышеуказанную форму. Эта проблема отсутствует в других браузерах, таких как FireFox и Safari.

Одним из наблюдений является то, что, когда я открываю инструменты разработчика и проверяю параметр отключения кэша, в большинстве случаев форма не отправляется. Если я сниму флажок, в основном форма отправляется. (Это верно для большинства случаев, а не для всех)

Еще одна вещь, когда я вручную выполняю ту же команду $("submit_button input")[0].form.submit() в консоли, chrome отправляет форму, и все работает нормально.

Может кто-нибудь сказать мне, почему эта проблема прибывает или по крайней мере альтернативное решение этой проблемы? Я надеюсь, что вся необходимая информация предоставлена. Дайте мне знать, если вам нужны какие-либо другие детали.

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Загрузите about:blank в iframe или отправьте форму для функции iframe onload.

Возможно, загрузка изображения, указанная в src iframe, прерывает отправку формы.

0 голосов
/ 21 сентября 2018

Попробуйте воспользоваться советом Сайеда, изменив

$(document).ready(function() {
    $("#submit_button").length && ($("#submit_button").hide(), $("#submit_button input").hasClass("autoSubmit") && $("#submit_button input")[0].form.submit());
});

на

$(top.myFrame).load(function() {
    $("#submit_button").length && ($("#submit_button").hide(), $("#submit_button input").hasClass("autoSubmit") && $("#submit_button input")[0].form.submit());
});

, но не уверены, сработает ли это, если iframe имеет другое происхождение, кроме ..

0 голосов
/ 14 сентября 2018

попробуйте ниже фрагмента.

 $(document).ready(function() {
        if($("#submit_button").length){
            $("#submit_button").hide();
           if( $("#submit_button input").hasClass("autoSubmit")){
               $("#form_init").submit();
           }

        }

  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...