我有一个页面,它加载一个 iframe(包含同一域上的表单),该页面在用户单击按钮之前一直隐藏,该按钮调用 jQuery slideToggle() 来显示/隐藏它。
当用户提交表单时,它会在 iframe 中加载一个“谢谢”页面。然后发生的情况是,如果用户再次单击该按钮,jQuery 会检查 iframe 主体元素的 ID 以查看表单是否存在,如果不存在,则加载表单 iframe 并显示它。
我得到的代码在 Chrome 中有效,但在 Firefox 中失败;
控制台中的错误消息 => TypeError: frames['form-iframe'] is undefined
(当我测试它时我想象 IE)。
任何关于为什么或如何解决此问题的想法将不胜感激。
HTML 片段
<label id="tell-a-friend-button">
<div class="radio-button radio-button-grey">
<div class="label-text">YES</div>
</div>
<span>Tell a friend</span>
</label>
<div id="tell-a-friend">
<iframe src="me.asp?email=foo" frameborder="0" id="form-iframe"></iframe>
</div>
jQuery 片段
$("#tell-a-friend-button").click(function(){
// set iframe content
$("#form-iframe").ready(function () {
var frame = $('body', frames['form-iframe'].document).attr('id');
if (frame == "tell-form") {
$('#tell-a-friend').slideToggle();
} else {
// is the thank you page
// load the iframe
$("#form-iframe").attr("src", "me.asp");
}
});
});