2015-04-10 4 views
3

У меня есть форма, предназначенная для скрытого iframe. Это отлично работает для IE, но ничего не происходит, когда форма отправляется в FireFox. Он не отправляется. Любая идея, что вызывает разницу?Форма таргетинга iframe не работает в FireFox

Форма и IFrame здесь:

<form name="dial" method="get" target="callout" action="/cgi-bin/make_call.php">  
    &nbsp;&nbsp;&nbsp; 
    <input type="text" style="width:190px;" id="calling" name="calling" /> 
    <input type="hidden" name="caller" value="<? echo $extension; ?>"> 
    &nbsp;&nbsp; 
    <input type="submit" name="search" class="btn btn-info btn-large" style="width:65px; height: 30px; position:relative;top:-5px;left:-2px; padding:0.2em; " value="Dial" /> 
</form> 
<iframe name="callout" width="0" height="0"></iframe> 

страница загружаемый:

<? 
$caller = $_GET['caller']; 
$calling = $_GET['calling']; 

//Clean the non numbers out of our string 
$calling = preg_replace("/[^0-9]/","",$calling); 

//If we are dialing a 7 digit number add a 9 to access an outside line 
if(strlen($calling) == 7){ 
    $calling = "9".$calling; 
    } 

//If we are dialing a 10 digit number add 9 and 1 to access outside line 
if(strlen($calling) == 10){ 
    $calling = "91".$calling; 
    } 

//If we are dialing a 11 digit number add 9 to access outside line 
if(strlen($calling) == 10){ 
    $calling = "9".$calling; 
    } 

header("Location: http://XX.X.XX.XX:8070/ShoreTelWebSDK/REST/DialNumber?callingExtension=$caller&destinationNumber=$calling"); 
?> 

Если изменить скрипт для вывода тестового сообщения и целевой видимую IFRAME я до сих пор не получить ничего в FireFox, но снова он отлично работает в Internet Explorer. Любая идея, что вызывает разницу?

+0

У вас есть ошибки в консоли? – Brewal

+1

Является ли ваш doctype определенным как HTML 5? ("")? «target» устарел в HTML 4.01. Кроме того, ваш третий «если» никогда не будет выполнен (но это не имеет никакого отношения к вопросу) – Digifaktur

+0

@Digifaktur: _ «target» устарел в HTML 4.01 «_ - только в Strict, он все еще разрешен в Transitional. И с использованием iframe, для которого требуется Transitional, iframe также не допускается в Strict. Кроме того, браузеры обычно не заботятся о том, что «официально» устарело или удалено, и значительно повысит производительность. Так что неправильный doctype был/есть проблема здесь, это довольно сомнительно ИМХО. – CBroe

ответ

3

Возможно, вы столкнулись с проблемой, описанной здесь: Firefox form targetting an iframe is opening new tab tl; dr: попробуйте добавить атрибут «id» в iframe с тем же значением, что и атрибут «name», и посмотреть, устраняет ли он вашу проблему.

+0

Я собирался предложить то же самое! – Spode

0

Попробуйте добавить "@" в iframe имя/цель.

<iframe name="@callout"></iframe> 
<form target="@callout"></form> 

Он помогает идентификатору распознавать имя. Имена должны быть конкретными и уникальными.

Смежные вопросы