Показать сообщение отдельно
  #1 (permalink)  
Старый 17.06.2009, 14:11
Zidky
 
Сообщений: n/a

Пошаговый вывод скрипта для IE всех версий.
Здравствуйте!

Помогоите, пожалуйста, разобраться в скрипте меню "Dtree". При выводе через него на страницу большого меню (около 2000 пунктов) IE всех версий ругаются, что скрипт на данной странице может вызвать зависание браузера и спрашивает продолжить выполнение или нет. Если нажать продолжить - скрипт работает, но нужно сделать чтоб это предупреждение не показывалось.

Думаю сделать пошаговый вывод меню, но очень плаваю в javascript

Помогите, пожалуйста...

Если не ошибаюсь, то формирование происходит именно здесь. Как бы поставить сюда задержку или вывод не сразу, а с интервалом маленьким частями?

// Outputs the tree to the page

dTree.prototype.toString = function() {

	var str = '<div class="dtree">\n';

	if (document.getElementById) {

		if (this.config.useCookies) this.selectedNode = this.getSelected();

		str += this.addNode(this.root);

	} else str += 'Browser not supported.';

	str += '</div>';

	if (!this.selectedFound) this.selectedNode = null;

	this.completed = true;

	return str;

};



// Creates the tree structure

dTree.prototype.addNode = function(pNode) {

	var str = '';

	var n=0;

	if (this.config.inOrder) n = pNode._ai;

	for (n; n<this.aNodes.length; n++) {

		if (this.aNodes[n].pid == pNode.id) {

			var cn = this.aNodes[n];

			cn._p = pNode;

			cn._ai = n;

			this.setCS(cn);

			if (!cn.target && this.config.target) cn.target = this.config.target;

			if (cn._hc && !cn._io && this.config.useCookies) cn._io = this.isOpen(cn.id);

			if (!this.config.folderLinks && cn._hc) cn.url = null;

			if (this.config.useSelection && cn.id == this.selectedNode && !this.selectedFound) {

					cn._is = true;

					this.selectedNode = n;

					this.selectedFound = true;

			}

			str += this.node(cn, n);

			if (cn._ls) break;

		}

	}

	return str;

};
Ответить с цитированием