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]);
}}}}
The function is supposed to identify nested folders in a hierarchical folder structure.
The function "searchForFolders()" is supposed to traverse sibling nodes in each iteration, and for each sibling node, it calls itself again, to see if there are child nodes of the current sibling.
The code below contains the function in question. For simplicity's sake, I have replaced the images with text characters. It doesn't look as good, but you should be able to see how the nesting works. When you click on a "Folder", you will get debug text on the RHS of the screen.
You will see there is an XML hierarchy. That is parsed by another function in the page to write out the hierarchy. That is working fine. The only functions that I am having trouble with are "searchForFolders()" and "hideShowFolder()". Code:
I'm calling a recursive function, and I want to display an alert after its done running, the thing the function is "done" after goes through it once.Here's the coles notes version....
Code:
function yay(n){ n = n-1; if(n=0){
[code]....
I don't want it to show the alert until its done all of it's recursive splendor.
function getParentElementByTagName(child, TagName){ var cn; if (child.parentElement){ cn = child.parentElement; if (child.parentElement.tagName == TagName){ return cn; }else{ getParentElementByTagName(child.parentElement, TagName); }}}
although it finds the element, the function returns null ( on the line 'return cn', cn is not null though). Is my algorithm wrong ?
I have written a function that works but it is recursive so ends up blowing the browser stack.I have seen a few examples of converting recursive functions to use a local stack but cannot convert my own function.I have a recursive function that is using the return values to build a result.
I would like to run this in recursive mode, and I'm starting the function with:
$(function(){ $.bubbles(); }
The problem is, that function works only one (and a half) time. Console shows: start callback start I have not idea what is a problem. Function needs to be run constantly.
I was wondering why my code is perfectly working in Firefox, but does not work in Internet Explorer at all: <script language="javascript"> <!-- document.body.onload=document.body.appendChild(document.getElementById('testdiv')); --> </script> I don't get any error messages, the div is just not showing how it is supposed to show with body as parent.
I have been looking at this code for two evenings now, and rewrote it 4 times already. It started out as jQuery code and now it's just concatenating strings together.
What I'm trying to do: Build a menu/outline using unordered lists from a multidimensional array.
What is happening: Inside the buildMenuHTML function, if I call buildMenuHTML, the for loop only happens once (i.e. only for 'i' having a value of '0'.) If I comment out the call to itself, it goes through the for loop all 3 times, but obviously the submenus are not created.
var newFields = document.getElementById('myDiv').cloneNode(true); var newField = newFields.childNodes; To recursively walk through and change the names of every form element found? Similar to:
var theName = newField[i].name; if (theName) newField[i].name = theName + "[" + fCounter + "]";
I need the counters because my users can add multiple new fields to the form, and perhaps delete one out of order. (They add 3 blocks of fields and delete the 2nd one.) For formating purposes I have some <div>s in my cloned node and I can't get to the form elements inside these divs. Here's some simplified markup to illustrate what I have: Code:
I have a string "ajrdvbfomfkswkmbncrfu" where the 3 letters b,k and f can be in three forms: b,b',b" and k,k',k" and f,f',f".I want to find ALL the possible string combinations.Is there a simple way to do that in JavaScript? (probably with several for loops)
Ex: Hera are 5 combinations: ajrdvb"fomfkswk'mbncrfu ajrdvb'fomfkswkmbncrfu
This recursive menu is built with ColdFusion and then Javascript is used to turn the style display on or off. The problem I'm running into is this. The menu currently has 4 levels. MicrosoftMicrosoft TechnicalDynamicSystem CenterWindows ServerHyper V The menu is collapsed and as you mouse over an item that has child elements it expands. The problem happening now is the menu loads expanded only for the 'Microsoft' element. (note this is the only menu tree that has 4 levels).
So it looks like this when loaded initially. MicrosoftMicrosoft TechnicalDynamicSystem CenterWindows Server When you mouseover 'Microsoft' it then expands the 'Hyper V' menu item underneathe Windows Server. Mousing over 'Microsoft' should open 'Microsoft Technical', etc... I imagine the code doesn't support that many levels because if 'Hyper V' is moved out and put under 'Microsoft Technical' as a child the menu works fine.
I'm working on some code and am running into brick walls. I'm trying to write out Javascript with Javascript and I've read the clj Meta FAQ and didn't see the answer, read many similar posts (with no luck though), and searched through the IRT.ORG Faqs (www.irt.org/script/script.htm).
The Javascript is designed to open an popup window and then inside that window call another script which will resize that window. There may be another way around this but the reason I tried this approach initially was that I wanted to call the onload handler in the popup window to resize the image only after the image had completely loaded. I've had some code in the primary Javascript file (showimage.js) before that works if the image has been cached but on the first load, it doesn't resize properly which tells me it is probably because it is trying to resize the window based on the image size but it isn't completely known at that point. So I removed that code and tried placing the resizing code in the second Javascript file (resizewindow.js). BTW I've tried other code to open a popup image and automatically size it ie Q1443 at irt.org but that doesn't do exactly what we need.
Even if there is another way to do this with one file, I still want to figure out why this isn't working in case I run into it in the future.
I thought what I would need to do to use document.writeln to write Javascript would be to escape any special characters and to break apart the script tag ie
document.writeln('</SCRIPT>');
would become
document.writeln('</SCR' + 'IPT>');
I have a HTML page and 2 Javascript files. All files are in the same directory and have permissions set correctly.
Here are the 3 files (keep in mind wordwrap has jacked up the formatting):
index.html ---------- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Test</title> <SCRIPT type="text/javascript" LANGUAGE="JavaScript1.1" SRC="showimage.js"> </SCRIPT> </head>
<body> Click the house<BR> <A ONCLICK="newWindow1('house1.jpg','Nice House')"><IMG SRC="house1thumb.jpg"></A> </body> </html>
showimage.js ------------ function newWindow1(pic,sitename) {
resizewindow.js --------------- function resizewindow() { // Do resizing here. // Right now this isn't being executed alert("resizing window"); }
Can anyone provide some pointers as to why this javascript is failing? I'm using IE6 on Win2k and when I click on the image to open the popup window, it does open the window but it is white with no content and the system immediately goes from about 4% CPU usage to 100% and consistently stays there until I kill that window with the task manager.
I'm getting errors in Firefox everytime I try to run this frame resize code, but it works fine in IE. I can't seem to figure out what the problem is with it.
The error is: Error: theFrame has no properties Line: 8
The line that the javascript console is showing an error for is in italics.
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.