⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opmlstore.js

📁 初学者
💻 JS
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.data.OpmlStore");dojo.require("dojo.data.core.Read");dojo.require("dojo.data.core.Result");dojo.require("dojo.lang.assert");dojo.require("dojo.json");dojo.require("dojo.experimental");dojo.experimental("dojo.data.OpmlStore");dojo.declare("dojo.data.OpmlStore", dojo.data.core.Read, {initializer:function (keywordParameters) {	this._arrayOfTopLevelItems = [];	this._metadataNodes = null;	this._loadFinished = false;	this._opmlFileUrl = keywordParameters["url"];}, _assertIsItem:function (item) {	if (!this.isItem(item)) {		throw new Error("dojo.data.OpmlStore: a function was passed an item argument that was not an item");	}}, _removeChildNodesThatAreNotElementNodes:function (node, recursive) {	var childNodes = node.childNodes;	if (childNodes.length == 0) {		return;	}	var nodesToRemove = [];	var i, childNode;	for (i = 0; i < childNodes.length; ++i) {		childNode = childNodes[i];		if (childNode.nodeType != Node.ELEMENT_NODE) {			nodesToRemove.push(childNode);		}	}	for (i = 0; i < nodesToRemove.length; ++i) {		childNode = nodesToRemove[i];		node.removeChild(childNode);	}	if (recursive) {		for (i = 0; i < childNodes.length; ++i) {			childNode = childNodes[i];			this._removeChildNodesThatAreNotElementNodes(childNode, recursive);		}	}}, _processRawXmlTree:function (rawXmlTree) {	var headNodes = rawXmlTree.getElementsByTagName("head");	var headNode = headNodes[0];	this._removeChildNodesThatAreNotElementNodes(headNode);	this._metadataNodes = headNode.childNodes;	var bodyNodes = rawXmlTree.getElementsByTagName("body");	var bodyNode = bodyNodes[0];	this._removeChildNodesThatAreNotElementNodes(bodyNode, true);	var bodyChildNodes = bodyNodes[0].childNodes;	for (var i = 0; i < bodyChildNodes.length; ++i) {		var node = bodyChildNodes[i];		if (node.tagName == "outline") {			this._arrayOfTopLevelItems.push(node);		}	}}, get:function (item, attribute, defaultValue) {	this._assertIsItem(item);	if (attribute == "children") {		return (item.firstChild || defaultValue);	} else {		var value = item.getAttribute(attribute);		value = (value != undefined) ? value : defaultValue;		return value;	}}, getValues:function (item, attribute) {	this._assertIsItem(item);	if (attribute == "children") {		var array = [];		for (var i = 0; i < item.childNodes.length; ++i) {			array.push(item.childNodes[i]);		}		return array;	} else {		return [item.getAttribute(attribute)];	}}, getAttributes:function (item) {	this._assertIsItem(item);	var attributes = [];	var xmlNode = item;	var xmlAttributes = xmlNode.attributes;	for (var i = 0; i < xmlAttributes.length; ++i) {		var xmlAttribute = xmlAttributes.item(i);		attributes.push(xmlAttribute.nodeName);	}	if (xmlNode.childNodes.length > 0) {		attributes.push("children");	}	return attributes;}, hasAttribute:function (item, attribute) {	return (this.getValues(item, attribute).length > 0);}, containsValue:function (item, attribute, value) {	var values = this.getValues(item, attribute);	for (var i = 0; i < values.length; ++i) {		var possibleValue = values[i];		if (value == possibleValue) {			return true;		}	}	return false;}, isItem:function (something) {	return (something && something.nodeType == Node.ELEMENT_NODE && something.tagName == "outline");}, isItemAvailable:function (something) {	return this.isItem(something);}, find:function (keywordArgs) {	var result = null;	if (keywordArgs instanceof dojo.data.core.Result) {		result = keywordArgs;		result.store = this;	} else {		result = new dojo.data.core.Result(keywordArgs, this);	}	var self = this;	var bindHandler = function (type, data, evt) {		var scope = result.scope || dj_global;		if (type == "load") {			self._processRawXmlTree(data);			if (result.saveResult) {				result.items = self._arrayOfTopLevelItems;			}			if (result.onbegin) {				result.onbegin.call(scope, result);			}			for (var i = 0; i < self._arrayOfTopLevelItems.length; i++) {				var item = self._arrayOfTopLevelItems[i];				if (result.onnext && !result._aborted) {					result.onnext.call(scope, item, result);				}			}			if (result.oncompleted && !result._aborted) {				result.oncompleted.call(scope, result);			}		} else {			if (type == "error" || type == "timeout") {				var errorObject = data;				if (result.onerror) {					result.onerror.call(scope, data);				}			}		}	};	if (!this._loadFinished) {		if (this._opmlFileUrl) {			var bindRequest = dojo.io.bind({url:this._opmlFileUrl, handle:bindHandler, mimetype:"text/xml", sync:(result.sync || false)});			result._abortFunc = bindRequest.abort;		}	}	return result;}, getIdentity:function (item) {	dojo.unimplemented("dojo.data.OpmlStore.getIdentity()");	return null;}, findByIdentity:function (identity) {	dojo.unimplemented("dojo.data.OpmlStore.findByIdentity()");	return null;}});

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -