我有一个呈现表单的iframe。我按照自己的意愿完成了所有工作,但现在我想解雇在提交表单时呈现表单的iframe。
这是控制器:
public function createIssueAction(Request $request, $messageUid)
{
$form = $this->createForm(
new IssuePopupFormType($this->container),
$message
);
$form->handleRequest($request);
if ($form->isValid()) {
$message = $form->getData();
//Doing some work
$this->get('session')
->getFlashBag()
->add(
'success',
'issue' . $message . ' is created'
);
return $this->redirect($this->generateUrl('_mail_inbox'));
}
}
return $this->render(
'AcmeBundle:Issue:issuePopup.html.twig',
[
'message' => $message,
'form' => $form->createView()
]
);
}
如何在提交表单而不是网址重定向时解除iframe?
答案 0 :(得分:0)
你可以唯一地删除/关闭嵌入文档中的iframe,因为它在代码中。
所以你可以用cross-document-messaging
来做到这一点或者您使用包装器,例如easyxdm
这也可能有用http://cross-browser.com/talk/inter-frame_comm.html
无论如何,而不是重定向
return $this->redirect($this->generateUrl('_mail_inbox'));
你渲染一个视图,执行一些发布一些状态消息的javascript
在您收听该邮件的嵌入文档中,如果您收到该邮件,则会解除/隐藏/删除iframe
这取决于你的设计,但也许有很多更简单的解决方案,例如你的symfony动作你渲染一个空的html视图 并且你的iframe的css有高度:auto所以如果它也没有边框而且没有看起来像它被解雇了