fckxml.js
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:3k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. /*
  2.  * FCKeditor - The text editor for internet
  3.  * Copyright (C) 2003-2005 Frederico Caldeira Knabben
  4.  * 
  5.  * Licensed under the terms of the GNU Lesser General Public License:
  6.  *  http://www.opensource.org/licenses/lgpl-license.php
  7.  * 
  8.  * For further information visit:
  9.  *  http://www.fckeditor.net/
  10.  * 
  11.  * File Name: fckxml.js
  12.  *  Defines the FCKXml object that is used for XML data calls
  13.  *  and XML processing.
  14.  *  This script is shared by almost all pages that compose the 
  15.  *  File Browser frameset.
  16.  * 
  17.  * File Authors:
  18.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  19.  */
  20. var FCKXml = function()
  21. {}
  22. FCKXml.prototype.GetHttpRequest = function()
  23. {
  24. if ( window.XMLHttpRequest ) // Gecko
  25. return new XMLHttpRequest() ;
  26. else if ( window.ActiveXObject ) // IE
  27. return new ActiveXObject("MsXml2.XmlHttp") ;
  28. }
  29. FCKXml.prototype.LoadUrl = function( urlToCall, asyncFunctionPointer )
  30. {
  31. var oFCKXml = this ;
  32. var bAsync = ( typeof(asyncFunctionPointer) == 'function' ) ;
  33. var oXmlHttp = this.GetHttpRequest() ;
  34. oXmlHttp.open( "GET", urlToCall, bAsync ) ;
  35. if ( bAsync )
  36. {
  37. oXmlHttp.onreadystatechange = function() 
  38. {
  39. if ( oXmlHttp.readyState == 4 )
  40. {
  41. oFCKXml.DOMDocument = oXmlHttp.responseXML ;
  42. if ( oXmlHttp.status == 200 )
  43. asyncFunctionPointer( oFCKXml ) ;
  44. else
  45. alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;
  46. }
  47. }
  48. }
  49. oXmlHttp.send( null ) ;
  50. if ( ! bAsync )
  51. {
  52. if ( oXmlHttp.status == 200 )
  53. this.DOMDocument = oXmlHttp.responseXML ;
  54. else
  55. {
  56. alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;
  57. }
  58. }
  59. }
  60. FCKXml.prototype.SelectNodes = function( xpath )
  61. {
  62. if ( document.all ) // IE
  63. return this.DOMDocument.selectNodes( xpath ) ;
  64. else // Gecko
  65. {
  66. var aNodeArray = new Array();
  67. var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument, 
  68. this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
  69. if ( xPathResult ) 
  70. {
  71. var oNode = xPathResult.iterateNext() ;
  72.   while( oNode )
  73.   {
  74.   aNodeArray[aNodeArray.length] = oNode ;
  75.   oNode = xPathResult.iterateNext();
  76.   }
  77. return aNodeArray ;
  78. }
  79. }
  80. FCKXml.prototype.SelectSingleNode = function( xpath ) 
  81. {
  82. if ( document.all ) // IE
  83. return this.DOMDocument.selectSingleNode( xpath ) ;
  84. else // Gecko
  85. {
  86. var xPathResult = this.DOMDocument.evaluate( xpath, this.DOMDocument,
  87. this.DOMDocument.createNSResolver(this.DOMDocument.documentElement), 9, null);
  88. if ( xPathResult && xPathResult.singleNodeValue )
  89. return xPathResult.singleNodeValue ;
  90. else
  91. return null ;
  92. }
  93. }