嘿伙计们我在上传表格时遇到了问题。它适用于Firefox和IE,但它不适用于Safari和Chrome,因此我认为它是一个webkit问题。 首先,我运行php表单并将目标更改为iframe。然后,一旦它完成上传,我得到PHP以回复一个声明,将一个声明真/假回到iframe。 我遇到的问题是PHP并没有将语句回显到iframe中。 这是我所拥有的代码:
在php中:
//do all the appropriate checks etc and if it's uploaded do the following
if ($success == true)
{
echo '<div id="result">success</div>';
} else {
echo '<div id="result">error</div>';
}
然后在我的javascript中我做了一些检查以查看表单是否填写等然后如果一切正常我先调用submit()然后调用iframeCheck()
function submit()
{
//change the target of the upload form to upload to the iframe.
$('#contactForm').attr('target','uploadIframe');
//submit the iframe
$('#contactForm').submit();
//fade in the sending message
$('#sendingMessage').fadeIn(200);
}
function iframeCheck()
{
//get the contents of iframe
var elem = $('#uploadIframe').contents().find('div#result');
var result = elem.html();
//if there's nothing in it, upload hasn't finished...
if ( elem.length <= 0)
{
//check it again in 2"
clearTimeout(timer);
var timer = setTimeout(iframeCheck, 2000);
} else if (result =='success'){
//if it contains a success message, display the success message
$('#sendingMessage').fadeOut(200);
$('#successMessage').fadeIn(500);
inputButton.removeAttr('disabled');
} else {
if (result == 'error')
{
//otherwise display the error message
$('#sendingMessage').fadeOut(200);
$('#failureMessage').fadeIn(500);
inputButton.removeAttr('disabled');
}
}
}
它在ff和IE中运行良好,但正如我所说的chrome和safari不会回应iframe。 谢谢你们的帮助!
答案 0 :(得分:0)
iFrame网址是否与普通主页相同?也许它与跨域政策有关。
答案 1 :(得分:0)
感谢大家的帮助。约翰这是我的javascript问题。单击它后我立即禁用了发送按钮。这很好用,除了webkit不喜欢它所以我要做的就是添加onsubmit =&#34; document.getElementById(&#39; submitButton&#39;)。disabled = true;&#34;现在工作正常。 干杯