Page 1 of 1

IE: Object doesn't support this method or property

Posted: Fri May 18, 2007 8:16 pm
by thiscatis
Hi!

IE is giving me this error or a javascript:

"IE: Object doesn't support this method or property"

It does work in Firefox.

It's about these lines:

Code: Select all

<form action="javascript:get(document.getElementById('newsletter'));" name="newsletter" id="newsletter">

				<input class="field" name="email" id="email" type="text" />

				<input class="button" type="button" name="button" value="Sign Up"  onclick="javascript:get(this.parentNode);" />
    
    	 </form>

Posted: Fri May 18, 2007 11:25 pm
by Kieran Huggins
"get" isn't a built-in javascript function - maybe there was an accompanying "function get(){...}" where you grabbed the code from. Sounds like a custom AJAX function to me.

Posted: Sat May 19, 2007 6:59 am
by thiscatis
The function is defined in the head tag.
It does work in Firefox!

Posted: Sat May 19, 2007 7:03 am
by feyd
I don't recall IE supporting "this.parentNode."

Posted: Sat May 19, 2007 8:25 am
by thiscatis
Damn :(

Any alternatives for this:

Code: Select all

         <form action="javascript:get(document.getElementById('newsletter'));" name="newsletter" id="newsletter">

				<input class="field" name="email" id="email" type="text" />

				<input class="button" type="button" name="button" value="Sign Up"  onclick="javascript:get(this.parentNode);" />
    
    	 </form>

	<span id="result">


	</span>
newsletter.js

Code: Select all

/ Newsletter
var http_request = false;
   function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari,...
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents;
      http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters);
   }

   function alertContents() {
      if (http_request.readyState == 4) {
         if (http_request.status == 200) {
            //alert(http_request.responseText);
            result = http_request.responseText;
            document.getElementById('result').innerHTML = result;            
         } else {
            alert('There was a problem with the request.');
         }
      }
   }
   
   function get(obj) {
      var poststr = "email=" + encodeURI( document.getElementById("email").value );
      makePOSTRequest('join.php', poststr);
   }

Posted: Sat May 19, 2007 9:03 am
by Chris Corbyn
feyd wrote:I don't recall IE supporting "this.parentNode."
I'm pretty sure IE supports the parentNode property. I could swear I've used it myself before plenty of times :)