php 以iframe为目标的表单在FireFox中不工作

sd2nnvve  于 2023-02-18  发布在  PHP
关注(0)|答案(3)|浏览(126)

我有一个针对隐藏iframe的表单。这在IE上运行正常,但是在FireFox中提交表单时没有任何React。没有提交。知道是什么导致了差异吗?
表单和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中同样工作得很完美。

vfh0ocws

vfh0ocws1#

您可能会遇到此处报告的问题:Firefox form targetting an iframe is opening new tab时间间隔;dr:尝试在iframe中添加一个“id”属性,与“name”属性具有相同的值,看看它是否能解决您的问题。

e5nszbig

e5nszbig2#

尝试将“@”添加到iframe名称/目标。

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

它帮助识别者识别名字。名字需要具体和唯一。

eivnm1vs

eivnm1vs3#

这两种解决方案对我都不起作用,幸运的是,我偶然发现了X1 E0 F1 X,它提到“可能产生这些错误的特定安全产品,比如Avast,AVG和ESET软件。"。在我的情况下,实际上是ESET Nod32产品导致了错误。当我禁用Web访问保护时(设置-〉互联网保护-〉Web访问保护)问题消失了。完全不知道为什么只有Firefox + ESET Nod32组合才会出现这个问题。

相关问题