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 内容之间的过渡动​​画效果

jQuery FancyBox Iframe - 在fancybox 中使用$(document).ready?

IE中的jquery,fancybox

fancybox beforeClose issue

根据内部更改的内容动态调整 jQuery Fancybox 的 iframe 高度