Fancybox 2,带表单的 iframe,在 IE7 中不起作用
Posted
技术标签:
【中文标题】Fancybox 2,带表单的 iframe,在 IE7 中不起作用【英文标题】:Fancybox 2, iframe with form, do not function in IE7 【发布时间】:2015-07-09 14:43:38 【问题描述】:我已经用 fancyBox v2.1.5 为 Joomla 构建了一个插件。
它在所有浏览器中都运行良好,IE7 除外。 不是什么大问题,但这是我的投资组合网站,所以我希望它也能在这个旧浏览器中运行。
我有一个 iframe,我从联系人插件(响应式联系人表单)中弹出一个表单,该表单不会显示,但谷歌验证码工具在那里。
如果我在新的浏览器窗口中打开页面,表单就会出现。
我尝试设置 iframe: preload: false 然后它起作用了,表单在那里,但是fancybox的“Fit To View”在Opera和IE中不起作用,高度出错了。
非常感谢任何帮助!
这是我的 Fancybox 代码:
<script type="text/javascript">
jQuery(window).on('load', function()
new JCaption('img.caption');
);
(function($)
$(document).ready(function()$('.item-page').find('a:has(img)').addClass('fancyboxlink');$('.fancyboxlink').addClass('hiddenclass'); $('.hiddenclass:first').addClass('firstfancybox');$('a.fancyboxlink').attr('rel','gallery');
$('a.fancyboxlink').fancybox(
'type':'iframe',
scrolling: 'auto',
fitToView: true,
autoResize: false,
centerOnScroll: true,
width: 940,
height: 'auto',
scrollOutside: true,
autoCenter: true,
titlePossition: 'outside',
afterShow: function()
if($('.fancybox-iframe').length > 0)
this.width = $('.fancybox- iframe').contents().find('html').width();
this.height = $('.fancybox-iframe').contents().find('html').height();
$.fancybox.update();
,
'afterClose': function()
$('#fancybox-inner').empty();
);
);
)(jQuery);
</script>
【问题讨论】:
【参考方案1】:我自己设法解决了这个问题。对于 IE7,必须在 iframe 中重新加载源的内容。
插入到:
titlePossition: '外',
这段代码:
beforeShow: function()
if($('.fancybox-iframe').length > 0)
if (navigator.appVersion.indexOf('MSIE 7.')!=-1)
$('.fancybox-iframe').attr('src', $('.fancybox-iframe').attr('src'));
,
希望这可以帮助其他有同样问题的人。
工人节快乐!
【讨论】:
以上是关于Fancybox 2,带表单的 iframe,在 IE7 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
带有 Fancybox 中的提交表单的 iframe 未发布数据
Fancybox 3 IFrame 内容之间的过渡动画效果