解决ThickBox在IFrame中点击不能覆盖整个屏幕的问题(原创)

写于20080619 11:40 AM

我的 ThickBox 版本号 3.1

      言归正转,先晕一下.

      今天碰到个郁闷之事,就是ThickBox处于IFrame中时点击里面的链接只能覆盖掉IFrame部份,不能全屏覆盖.

俺是左思右想的,终于找到了解决办法,而且是一劳永逸哟.

分两个步骤

第一步:

  打开 thickbox.js 文件,找到 function tb_init(domChunk) 这个函数,

将其中的

tb_show(t,a,g);

替换成下面这几行

 //——————————————//Jack add begin 
 var queryString = a.replace(/^[^\?]+\??/,”);
 var params = tb_parseQuery( queryString );
 if(queryString.indexOf(‘TB_iniframe’) != -1) //检测是否有TB_iniframe参数
 {
  if (params[‘TB_iniframe’] == “true”)
  {
   top.tb_show(t,a,g);
  }
  else
  {
   tb_show(t,a,g);
  } 
 }
 else
 {
  tb_show(t,a,g);
 } 
 
 //——————————————//Jack add end

哈哈,这样我们就自定义了一个 叫 TB_iniframe 的参数,现在到被嵌入到 IFrame 的thickbox 里稍稍修改一下链接将其改成 <a href=”http://www.163.com/?height=85&width=250&modal=true&TB_iniframe=true” class=”thickbox” title=”修改”> 类似这种就行了,看到后面的 TB_iniframe 了吧,就是那东西了,现在试试吧.什么还不行??呵呵忘了告诉大家了还有第2步没做,其实第二步已经很简单了,就是在最顶层的网页中,也就是那个top网页里面一定要引入 thickbox的相关文件.

第二步:

类似的在head处加入这两行

<link href=”/scripts/thickbox/thickbox.css” rel=”stylesheet” type=”text/css” media=”all”  />
<script src=”/scripts/thickbox/thickbox.js” type=”text/javascript”></script>

注意了:本来的那个IFrame文件里也要加上面这两行哟,不能只加一处的.

哈哈,现在肯定已经可以了,要是还不行那就要充分怀疑一下自己的人品了哟!!!

收 工

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

4 + 4 =