最近帮论坛里的会员解决了一个问题。就是DIY里面,模块没有,显示空白。下面我就简述下,如何排查的这个问题。大家的问题可能与这个问题一样,也可能不一样。但是,检查问题的思路是一样的。希望有能力的站长出现这个问题后检查一下。
首先进入DIY后。点击模块的链接是
- <a id="hd_mod" onclick="spaceDiy.getdiy('blockclass');this.blur();return false;" href="javascript:;">模块</a>
在这里调用了js函数 getdiy() 并且传进一个参数 'blockclass' ,在portal_diy.js 中我找到了这个函数。997行。
其中流程执行的程序段是
- getdiy : function (type) {
- if (type) {
- var nav = $('controlnav').children;
- for (var i in nav) {
- if (nav[i].className == 'current') {
- nav[i].className = '';
- var contentid = 'content'+nav[i].id.replace('nav', '');
- if ($(contentid)) $(contentid).style.display = 'none';
- }
- }
- $('nav'+type).className = 'current';
- if (type == 'start' || type == 'frame') {
- $('content'+type).style.display = 'block';
- return true;
- }
- if(type == 'blockclass' && $('content'+type).innerHTML !='') {
- $('content'+type).style.display = 'block';
- return true;
- }
- var para = '&op='+type;
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- para += '&' + arguments[i] + '=' + arguments[++i];
- }
- }
- var ajaxtarget = type == 'diy' ? 'diyimages' : '';
- var x = new Ajax();
- x.showId = ajaxtarget;
- x.get('portal.php?mod=portalcp&ac=diy'+para+'&inajax=1&ajaxtarget='+ajaxtarget,function(s, x) {
- if (s) {
- if (typeof cpb_frame == 'object' && !BROWSER.ie) {delete cpb_frame;}
- if (!$('content'+type)) {
- var dom = document.createElement('div');
- dom.id = 'content'+type;
- $('controlcontent').appendChild(dom);
- }
- $('content'+type).innerHTML = s;
- $('content'+type).style.display = 'block';
- if (type == 'diy') {
- spaceDiy.setCurrentDiy(spaceDiy.currentDiy);
- if (spaceDiy.styleSheet.rules.length > 0) {
- Util.show('recover_button');
- }
- }
- var evaled = false;
- if(s.indexOf('ajaxerror') != -1) {
- evalscript(s);
- evaled = true;
- }
- if(!evaled && (typeof ajaxerror == 'undefined' || !ajaxerror)) {
- if(x.showId) {
- ajaxupdateevents($(x.showId));
- }
- }
- if(!evaled) evalscript(s);
- }
- });
- }
- }