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