Bladeren bron

Remove js.XMLHttpRequest, use js.html.XMLHttpRequest.

Or, Browser.createXMLHttpRequest if you care about IE6.
Bruno Garcia 12 jaren geleden
bovenliggende
commit
a0a89ee4e8
3 gewijzigde bestanden met toevoegingen van 18 en 68 verwijderingen
  1. 1 1
      std/haxe/Http.hx
  2. 17 0
      std/js/Browser.hx
  3. 0 67
      std/js/XMLHttpRequest.hx

+ 1 - 1
std/haxe/Http.hx

@@ -95,7 +95,7 @@ class Http {
 	public function request( post : Bool ) : Void {
 		var me = this;
 	#if js
-		var r = new js.XMLHttpRequest();
+		var r = new js.Browser.createXMLHttpRequest();
 		var onreadystatechange = function() {
 			if( r.readyState != 4 )
 				return;

+ 17 - 0
std/js/Browser.hx

@@ -21,6 +21,8 @@
  */
 package js;
 
+import js.html.XMLHttpRequest;
+
 class Browser {
 
 	public static var window(default,null) : js.html.DOMWindow = untyped __js__("typeof window != \"undefined\" ? window : null");
@@ -28,4 +30,19 @@ class Browser {
 	public static var location(default,null) : js.html.Location = untyped __js__("typeof window != \"undefined\" ? window.location : null");
 	public static var navigator(default,null) : js.html.Navigator = untyped __js__("typeof window != \"undefined\" ? window.navigator : null");
 
+	/**
+	 * Creates an XMLHttpRequest, with a fallback to ActiveXObject for ancient versions of Internet
+	 * Explorer.
+	 */
+	public static function createXMLHttpRequest() : XMLHttpRequest
+	{
+		if( __js__("typeof XMLHttpRequest") != "undefined" ) {
+			return new XMLHttpRequest();
+		}
+		if( __js__("typeof ActiveXObject") != "undefined" ) {
+			return __new__("ActiveXObject","Microsoft.XMLHTTP");
+		}
+		throw "Unable to create XMLHttpRequest object.";
+	}
+
 }

+ 0 - 67
std/js/XMLHttpRequest.hx

@@ -1,67 +0,0 @@
-/*
- * Copyright (C)2005-2012 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-package js;
-
-@:initPackage
-extern class XMLHttpRequest {
-
-	var onreadystatechange : Void -> Void;
-	var readyState : Int;
-	var responseText : String;
-	//var responseXML : Xml;
-	var status : Int;
-	var statusText : String;
-
-	function new() : Void;
-
-	function abort() : Void;
-
-	function getAllResponseHeaders() : String;
-	function getResponseHeader( name : String ) : String;
-	function setRequestHeader( name : String, value : String ) : Void;
-	function open( method : String, url : String, async : Bool ) : Void;
-	function send( content : String ) : Void;
-
-	#if !jsfl
-	private static function __init__() : Void {
-		untyped
-		js["XMLHttpRequest"] =
-			if( window.XMLHttpRequest )
-				__js__("XMLHttpRequest");
-			else if( window.ActiveXObject )
-				function() {
-					try {
-						return __new__("ActiveXObject","Msxml2.XMLHTTP");
-					}catch(e:Dynamic){
-						try {
-							return __new__("ActiveXObject","Microsoft.XMLHTTP");
-						}catch(e:Dynamic){
-							throw "Unable to create XMLHttpRequest object.";
-						}
-					}
-				};
-			else
-				throw "Unable to create XMLHttpRequest object.";
-	}
-	#end
-
-}