Имам страница, която съдържа множество вградени рамки. Всички вградени рамки препращат към една и съща страница. Всяка страница с iframe съдържа формуляр, който искам да изпратя на сървъра. Има бутон „Изпращане на всички“ на страницата, съдържаща вградени рамки, които при щракване извикват тази функция:
function submitAll() {
var fs = d3.selectAll('iframe')[0];
for (var i = 0; i < fs.length; i++) {
try {
var el = fs[i];
var doc = el.contentDocument;
var root = el.contentWindow['root'];
var f = doc.getElementById('submit-form');
removeParentNodeReference(root);
doc.getElementById('POST-name').value = document.getElementById('name').value;
doc.getElementById('POST-email').value = document.getElementById('email').value;
doc.getElementById('POST-phone').value = document.getElementById('phone-number').value;
doc.getElementById('POST-json').value = JSON.stringify(root);
doc.getElementById('POST-submit-info').click();
}
catch (e) {
console.log(e.message);
}
}
Функцията грабва документа със съдържание от всеки iframe. С документа на iframe той ще продължи да попълва някои стойности на формуляра в страницата на iframe. След това функцията ще хване бутона на формуляра и ще щракне върху него. Това извиква функция във iframe, която извършва известна обработка и изпраща формуляра.
В chrome всички формуляри на iframes се изпращат. Във firefox обаче изпращането на формуляр ще се случи само за първия формуляр. Влязох в програмата за отстраняване на грешки и видях, че въпреки че преминава през всички страници с iframe, всъщност се случва само едно изпращане.
Някой има ли идеи?
Благодаря.
d3
за включване. Е, не знам как работи d3, но вместо да използвате няколко вградени рамки, трябва да погледнете Ajax (можете да публикувате колкото форми желаете, без да напускате страницата и без никакви вградени рамки) -› Погледнете тук :) - person blex   schedule 27.06.2014