I cannot get an appendChild(img) in the following code snippet to work in IE. However, the same script works without any problems in Firefox and Netscape 7.0 The error that is produced in IE is invalid argument. I have used a try/catch block in expectation of producing a better error message however the error message that is received is [objectError].
var pageDiv = window.parent.fraTop.document.getElementById('pageTitle'); if(pageDiv!=null) { while(pageDiv.hasChildNodes()) { pageDiv.removeChild(pageDiv.firstChild); }
var img = document.createElement('img'); img.src='/wp2f/images/please_wait.gif' pageDiv.appendChild(img); }
Can anyone tell me: 1) why my string appears twice; 2) how to make it appear just once?
I'm trying to insert code at the top of every viewed page. Obviously, document.body appends the string to the closing body tag which is not what I want. What could I use to insert my code as the first childnode under 'body'?
I'm trying to spread a table across a frameset. So I have index.htm that has an iframe sourcing the frameset. What I'm trying to do is create a table in index.htm to spread across the whole brower window. Code:
var newText = parent.frames[1].document.createTextNode("some text"); var theBody= parent.frames[1].document.getElementById("theBody"); theBody.appendChild(newText);
This will insert an element after the last <p>, can I insert one after the body but before the first <p>?
Over the last couple years I've built up a DOM library. Nothing fancy, you can just create an element with all its attributes in one function. What I've wanted to do is make it so you can determine the parent element of the newly created element. Works supa in firefox, not so supa in IE.This is my code....
Code: pollOptions = document.getElementById("pollOptionsContainer");/*new divs to organize it in*/ pollOptionsGroupContainer = buildHtml.createDivHTMLElement(pollOptions);
Why doesn't the following code work in firefox: var e = document.createElement("Div"); e.innerHTML = "<p>Hi</p>"; GP.appendChild(e); ..GP is a div.. It works in IE. What is the correct code for FF.
i'm trying to generate a calendar using dom to create a table. it works in firefox and opera, but ie won't show it, and sometimes gives me an alert saying it can't display the page, and then shows a 404 page. here's the code:
I have a simple two frame page (top and bottom; parent called index). and I am trying to dynamically create forms in the bottom frame when buttons are clicked on the top page. But I keep getting an error in the line labelled * below inside addBlock1(). Here is my code (which is in top.html): Code:
FYI the $ is just a prototype function for getElementByID the error i keep getting says that "targetDIV has no properties" not sure what that means exacly. Any ideas?
I am trying to create one image using JavaScript; then later in the script remove the image - not just remove the src. The following creates the image, but I have been unable to remove it.
How do I structure document.getElementById('num1').removeChild(image_ display); ?
If I try to append a PARAM tag twice I'm having problems:
var.medDiv = document.getElementById("myDiv");
var medObj = document.createElement("object");
var p = document.createElement("param"); p.setAttribute("FileName",this.URL); medObj.appendChild(p);
p = document.createElement("param"); p.setAttribute("AutoStart","false"); medObj.appendChild(p); // <-- this one
medDiv.appendChild(medObj);
The line with the "this one" comment triggers IE to tell me that it has an invalid argument. If I change the order of the PARAMs then the new second PARAM will give me the error. If I move the setAttribute to after the appendChild I still get the error.
This example will show that the first call to "doit()" will print 30 times the image with only one call to the server. Then I have a timeout and call doit() again, and this time, it downloads the picture 30 times!!!! It doesn't even time to finish downloading the pictures before the next timeout kicks off and if I let it go for a minute or two i have like 300 calls to download the same image trying to be downloaded!
I heard about a bug in IE that would require to preload the images using a hidden div, but that didn't work. I see that google maps manage to not having to reload the image and gets it from cache. What am I doing wrong? This works perfectly in Firefox (i.e. it uses the cache and calls the server just once). Code:
I have a custom HTML tag: <custom>text is here</custom>
I can do anything I would like in terms of calling methods with mozilla but not IE 6. For instance calling appendChild in IE results in an error. The innerHTML property is blank even though there is text between the tag.
Is there a work around for IE. What gives with IE and being able to access and manipulate custom tags??
I have 2 list boxes - one to fill the second one based on the selection, or move all items. You can remove the selection (or all items) from the second one to place it back in the first one. I expanded my horizons and thought to use script based on the js node operation appendChild(). It seemed so clean and easy to follow. Works beautifully in IE, but Firefox sees the value for a nanosecond but doesn't put it in the box. This is the relevant js:
function addSide(){ var addIndex = document.forms[0].sides.selectedIndex;
if (addIndex >= 0) { document.forms[0].selectedSides.appendChild(document.forms[0].sides.options(addIndex)); }}
function delSide(){ var selIndex = document.forms[0].selectedSides.selectedIndex; if (selIndex >= 0) { document.forms[0].sides.appendChild(document.forms[0].selectedSides.options(selIndex)) }}
function addAll(){ var len = document.forms[0].sides.length -1; for(i=len; i>=0; i--){ document.forms[0].selectedSides.appendChild(document.forms[0].sides(i)); }}
function delAll(){ var len = document.forms[0].selectedSides.length -1; for(i=len; i>=0; i--){ document.forms[0].sides.appendChild(document.forms[0].selectedSides(i)); }}
Is there a way to make it work for FF, or do I need to just start over and not use appendChild()? Is there a better way?
I'm playing around with some AJAX-ish stuff and encountered some problem in the JS side of the universe. Maybe someone here can suggest an alternative that works.
I have developed a simple ASP.NET application with a web page that should display a list of users. This list page is designed to start with an empty table (with columns defined), and, onload, send an XmlHttp request to a server component (a.k.a. ListServer). This ListServer is currently simulating a long-running operation. So, it sleeps for 3 seconds, and then grabs a list of 4 users from an xml file. It applies an xsl transformation and returns the result.
The xslt is designed to take the xml data and convert it to a <ListChunkroot element containing a <trfor each user in the XML data. Each row contains 4 columns (Id, Login, Password, Name). The javascript in the list page grabs the responseXML from the XmlHttp object and should, for each <trin it, create a copy of the row coming from the server and adding it to the list on the client.
I actually got all that to work quite fine. The js snipplet dealing with copying the row coming from the server and adding it to the table on the client is: Code:
The problems I am having are with trying to get IE to successfully clone a referenced node from one frame and inport it (with all form values etc) to another frame. Moz works fine with
I have tried iterating the specified node and using createElement to create a copy in the desired place, which works fine with simple input type text or hidden. The first snag comes when trying the same with textareas. The cloned form doesn't submit the values :(
I am working on a sortable table (full code in attachment). I solved all the intermediate steps till the end when, to my surprise, appenChild() method inserts some previous cloneNodes in looped rows in a peculiar mode, by leaving the end tags </tr> at the end of the table. So far:
1.- build the cloneNodes of the rows as an array, and each index as a paralel array:
//some needed variables on later t=document.getElementById('tab'); nr=t.rows; nc=t.rows[0].cells;
//array of rows and rows indexes var oRows = new Array() var iRows = new Array() for(var i=1;i<nr.length;i++){ oRows[i]=t.rows[i].cloneNode(true); iRows[i]=t.rows[i].rowIndex; //so far so good, alert shows me what i needed alert(oRows[i].innerHTML) }
2. - build an array with the content of the correspondent cells on column and sort this array. The array is double and keep the genuine row's index for later use as each second element. Code:
this works perfectly in firefox - but in internet explorer it just creates the first lable and the input field, although it creates the input field as a regular text field instead of for files. the caption label and text field aren't created at all. any ideas? Code:
I'm trying to add options to a select box the error I get occurs when I try to append "hello" to the option object here's the code that I'm trying to execute:
var option=document.createElement("option"); option.value="1"; option.appendChild("hello"); document.forms[0].shows.appendChild(option);
I am coding an AJAX DHTML whatever application and I was fed up with always typing a lot of appendChild() functions.
I created a custom one called append_children() and wanted to share it if anyone need such a function.
function append_children() { var a = append_children.arguments; for ( var i = a.length - 1; i > 0 ; i-- ) { try { a[i-1].appendChild(a[i]); } catch(e) { for ( var j = 0; j < a[i].length; j++ ) { append_children(a[i-1], a[i][j]); }}}}
I have a rather old script that uses XMLHttpRequest to retrieve some html and pops it into a div using innerHTML. I'd like to switch over to using append child since not only is it standardized, but it'll save me bandwidth in the long run. Code: