最近有个项目想利用thickbox.js做出弹出窗口的特效,而希望可以动态的显示iframe中的内容,但最后发现在asp.net后台无法请求到thickbox.js的参数,郁闷了一点时间,感觉十再想不通.都是href传递过去的参数为什么不加 class="thickbox"就可以请求到参数,加了这个就请求不到参数,当然不加的话就没特效了,最后想一定是在thickbox.js代码屏蔽了,不然没理由请求不到参数的,打开thickbox.js,很快发现是让如下代码屏蔽了
if(url.indexOf('TB_iframe') != -1){
urlNoQuery = url.substr(0,TB_strpos(url, "?"));
$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div><iframe src='"+urlNoQuery +"' id='TB_iframeContent' style='"+(ajaxContentW + 30)+"px;height:"+(ajaxContentH + 18)+"px;'></iframe>");
}else{
$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div><div id='TB_ajaxContent' style='"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
}
就因为urlNoQuery 所以参数全部就取掉了.所以就把urlNoQuery 改成了url,当然是改这句话的 $("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div><iframe src='"+urlNoQuery +"' id='TB_iframeContent' style='"+(ajaxContentW + 30)+"px;height:"+(ajaxContentH + 18)+"px;'></iframe>");
改成如上代码后,运行测试,哇哈哈哈哈哈...成功可以请求到数据了,目标实现!嘻嘻!