从iFrame(php结果表单脚本):隐藏父级中的div

时间:2014-03-23 19:35:31

标签: javascript php iframe

上下文:我在iFrame中预览sendform结果 - 当然,提交按钮放在父页面上。所有页面都在同一个域中。

我喜欢(在条件下和iFrame中)隐藏提交按钮。

在父页面上:

function hidesubmit() {
    $('#submitdiv').hide();   // hide button
    };

<iframe class="iframe_" frameborder="0" name="preview" onload="resizeIframe(this);" scrolling="no"></iframe>

在PHP脚本(在iFrame中)我有这行不起作用

window.parent.hidesubmit();

在父页面上(已添加):

        <div class="preview" id="preview">
      <iframe class="iframe_" frameborder="0" name="preview" onload="resizeIframe(this);" scrolling="no"></iframe>
     <div id="animated" style="text-align:center; display:block;" ><img src="/templates/Gazette/Images/animateround.gif" width="124" height="124" vspace="5" /></div>
                          订单/ Commandezvia✉(%% GLOBAL_Protocol %%)                        
      <div class="espacesubmit" id="submitPhoneOnly">
        <button class="buttonsubmit" name="_Commande" onclick="return checkform();" type="submit">
          Order via Phone only / Commande par Tél. uniquement<br />

(您可以提交接收副本/ Vous pouvez soumettre pour recevoir une copie)                        

3 个答案:

答案 0 :(得分:0)

如果父级位于同一个域中,则只能对其进行操作。 (见SOP)。

如果它位于同一个域中,则需要使用window.top

例如:

window.top.hidesubmit();

另一种方法是在父表单上添加一个事件“onsubmit()”:

<form name='myForm' action='...' method='...' onsubmit='hidesubmit();return true;'>
...
</form>

答案 1 :(得分:0)

停止使用iframe

严重。

  • 它已经老了!非常老!
  • 这不是一个好的实践。
  • 难以操纵

你不需要那个。你只是不知道。

替代

使用简单的 ajax请求来获取您想要的内容,并在页面中

  • 在页面中调用您想要的内容
  • 获取结果(纯html没有页眉/页脚,只有内容)
  • 使用.html() / .append()
  • 在您的html页面中书写

可能的解决方案

请参阅https://developer.mozilla.org/en/DOM/window.parent

ẃindow.parent.hidesubmit();

答案 2 :(得分:0)

您似乎正在尝试从PHP中执行javascript调用。您需要将其括在一个脚本块中,如:

$boutonnosubmityet = '<div id="nosubmityet"><button class="ButtonsVerifier"
name="_NoSubmit"> Missing - Info - Manquante<br/>Your information </button></div>'
. '<script type="text/javascript">window.parent.hidesubmit();</script>';