JavaScript - Ie Issues Object.appendchild(embed);
Hey guys, First post i have searched the web a lot on this subject and am still confused so i thought id try and get some help from the experts, the following function works great in every browser except IE, the line of code that breaks in IE is highlighted in red. I have read some topics about this not working in IE and saw some workarounds with innerhtml or something but i don't really understand. Can someone please take some time to figure out a fix for this?
Code: function displayStream(live_id) { var stream_out = document.getElementById("stream_out"); for (var j = 0; j < stream_out.childNodes.length; j++) { stream_out.removeChild(stream_out.childNodes[j]); } var object = document.createElement("object"); object.setAttribute("height", "475"); object.setAttribute("width", "998"); var param = document.createElement("param"); //param.setAttribute("name", "movie"); param.name = 'movie'; param.setAttribute("value", "http://www.own3d.tv/livestream/" + live_id); object.appendChild(param); var param = document.createElement("param"); param.setAttribute("name", "allowfullscreen"); param.setAttribute("value", "true"); object.appendChild(param); var param = document.createElement("param"); //param.setAttribute("name", "wmode"); param.name = 'wmode'; param.setAttribute("value", "transparent"); object.appendChild(param); var embed = document.createElement('embed'); embed.setAttribute("type", "application/x-shockwave-flash"); embed.setAttribute("src", "http://www.own3d.tv/livestream/" + live_id +";autoplay=true"); embed.setAttribute("allowfullscreen", "true"); embed.setAttribute("wmode", "transparent"); embed.setAttribute("height", "475"); embed.setAttribute("width", "998"); object.appendChild(embed); stream_out.appendChild(object); } Similar TutorialsHello, I am attempting to implement a javascript joystick plugin. The project has a google code page located at: http://code.google.com/p/javascript-joystick/ After installing the plugin, the javascript works flawlessly in IE and FF, however chrome has some issues with executing it. A hosted version of what I am having trouble with can be found at http://www.jimmyblaze.net/joytest/simple.html The issue seems to be with a snippet of code from the main script that attempts to create an object and embed it on the page. The trouble area can be found he Code: try { ctrlFF.type = "application/x-vnd.numfum-joystick"; ctrlFF.width = 0; ctrlFF.height = 0; /* * Before accessing the plug-in's script interface it needs to be * added to the page. If the 'setDevice' call fails, the plug-in * is assumed to either not be installed or not working in this * browser, in which case it is removed in the catch. */ document.body.appendChild(ctrlFF, document.body); if (ctrlFF.setDevice(0) != null) { /* * As with the code for IE, any non-null value is a * success. */ return ctrlFF; } Chrome doesn't seem to support the .setDevice function, as when running the chrome developer tools inspect element tool, I can see it throw an exception at that line, and prompts the user to update java, because it thinks it is out of date. Has anyone run into this issue with chrome and know of a possible fix? Thanks a lot for your time, Legomaniac So I'm re-writing my procedural Back Jack program to be Object Oriented so that I can add a split option and some other features and I've run into this weird bug... This is the beginning of the function that assembles the HTML for each card when it is added. hand.prototype.createCardsHTML = function (cardNum) { console.log(this.cards); console.log(this.cards[cardNum]); console.log(this.cards[cardNum].name); if(this.player == "dealer" && cardNum == 0){ this.cards[cardNum].imgHTML = '<img src="images/cards/b2fv.png" alt="dealer pocket" />'; } else{ this.cards[cardNum].imgHTML = '<img src="images/cards/' + this.cards[cardNum].image +'" alt="' + this.cards[cardNum].name + ' of ' + this.cards[cardNum].suit +'s" />'; } attached is a screen shot of the console.log reports, as you can see the object get stored in the array but for whatever reason I can't access it's individual properties. This only occurs when the hit function is called, not when the initial hands are generated. I'm really confused so any help is appreciated. Also here is the entire script (note: it's very long, a bit disorganized and not yet complete) // JavaScript Document // JavaScript Document window.onload = blackJackTable; function blackJackTable () { //set-ables var insCost = 50; var dlrHitsOn = 17; var minBet = 10; var bank = 500; //Utilities var usedCards = new Array(53); var roundOver = true; var allBetsPlaced = false; var dealerWent = false; //var dlrIncrement = 0; //var plrIncrement = 0; //Load Objects loadJSON("data.json"); function loadJSON(url) { var headID = document.getElementsByTagName("head")[0]; var newScript = document.createElement('script'); newScript.type = 'text/javascript'; newScript.src = url; headID.appendChild(newScript); newScript.onreadystatechange= function () { if (this.readyState == 'complete' || this.readyState == 'loaded') startGame(); } newScript.onload= startGame; } function startGame() { //console.log(deck); //construct players function player(playerIdent){ this.lastBet = 0; this.bet = 0; this.playerName = playerIdent; this.hands = new Array(); this.betPlaced = false; this.bank = bank; this.insured = false; } //Construct Hands function hand(playerName, id, bet) { this.total = 0; this.locked = false; this.over = true; this.player = playerName; this.id = id; this.bet = bet; this.aces = 0; this.handDiv = new Array(); this.cards = this.newCard(2); // adds to cards at random to hand, updates aces and total } //function for adding cards to a hand hand.prototype.newCard = function (howMany){ var cards = new Array(); for(i=0; i<howMany; i++){ var card; do { card = Math.floor(Math.random() * 52); } //Check to see if the card is in use while (usedCards[card]); //Add card to used array usedCards[card] = true; var nextCard = cards.length; cards[nextCard] = deck[card]; //check for ace if(cards[nextCard].value == 11){ this.aces += 1; //check for dealer ace in second slot if(this.player == "dealer" && cards.length == 2){ //call offer insurance if dealer has ace in second slot this.offerIns();///!!! re-write to reference hand not player } } this.total += cards[nextCard].value; } //update player total return cards; } //DOM commands to generate dealer area HTML player.prototype.generateDlrHTML = function () { this.dlrRegion = document.getElementById('dealer-region'); //creates a div for dealer hand this.plrHands = document.createElement('div'); //sets the class name for dealer hand div this.plrHands.setAttribute('class', 'dealer-hands'); //adds dealerhand div to dlrRegion div this.dlrRegion.appendChild(this.plrHands); //creates a div for dealer total this.dealerTotalRegion = document.createElement('div'); //sets the class name for dealer hand div this.dealerTotalRegion.setAttribute('class', 'dealer-total'); //adds dealertotal div to dlrRegion div this.plrHands.appendChild(this.dealerTotalRegion); } //DOM commands to generate each player area HTML player.prototype.generatePlrHTML = function () { this.plrRegion = document.getElementById('players-region'); //creates a div for player hands this.plrHands = document.createElement('div'); //sets the class name for player hands div and adds it to region this.plrHands.setAttribute('class', 'hands'); this.plrRegion.appendChild(this.plrHands); //Create player bet and bank region this.hud = document.createElement('div'); //sets the class name for player hud and adds to region this.hud.setAttribute('class', 'hud'); this.plrRegion.appendChild(this.hud); //Create bank display this.bankDisplay = document.createElement('span'); //sets the class name for player hud and adds to region this.bankDisplay.setAttribute('class', 'bank-display'); this.hud.appendChild(this.bankDisplay); //Create bet display this.betDisplay = document.createElement('span'); //sets the class name for player hud and adds to region this.betDisplay.setAttribute('class', 'bet-display'); this.hud.appendChild(this.betDisplay); //Create bet field this.betField = document.createElement('input'); //sets the class name for player hud and adds to region this.betField .setAttribute('class', 'bet-input'); this.betField .setAttribute('type', 'text'); this.betField .setAttribute('value', 'bet here'); this.betField .setAttribute('name', 'bet-input'); this.hud.appendChild(this.betField ); //Create bet Button this.betBtn = document.createElement('input'); //sets the class name for player hud and adds to region this.betBtn.setAttribute('class', 'bet-btn'); this.betBtn.setAttribute('type', 'button'); this.betBtn.setAttribute('value', 'Bet'); this.betBtn.setAttribute('name', 'Bet'); this.hud.appendChild(this.betBtn); var subvertEvent = this; this.betBtn.onclick = function () { subvertEvent.placeBet();}; //Create deal button this.dealBtn = document.createElement('input'); //sets the class name for player hud and adds to region this.dealBtn.setAttribute('class', 'deal-btn'); this.dealBtn.setAttribute('type', 'button'); this.dealBtn.setAttribute('value', 'Deal'); this.dealBtn.setAttribute('name', 'Deal'); this.hud.appendChild(this.dealBtn); this.dealBtn.onclick = function () { subvertEvent.deal();}; } //DOM commands to create hand HTML player.prototype.createHandHTML = function (handNum){ //for(i=0; i<this.hands.length; i++){ //Create a hand div this.hands[handNum].handDiv = document.createElement('div'); //sets the class name for player hud and adds to region var handClass = 'hand-' +this.hands[handNum].id; this.hands[handNum].handDiv.setAttribute('class', handClass); this.plrHands.appendChild(this.hands[handNum].handDiv); this.hands[handNum].createHandCtrlHTML(handNum); //} } //Hit - adds and displays card to hand hand.prototype.hit = function () { this.cards.push(this.newCard(1)); var cardNum = this.cards.length -1; this.createCardsHTML(cardNum); } //Stand - Locks hand - If all hands are locked triggers dealersTurn() hand.prototype.stand = function () { //lock this hand this.locked = true; if(checkAllLocked == true){ dealersTurn(); } } //Double Down - doubles bet on hand calls hit for a single card then forces a stand. hand.prototype.doubleDown = function () { if (this.total > 0 && this.cards.length == 2){ //double bet this.bet = this.bet * 2; //!!!update bet //draw a card this.hit(); //force player to stand this.stand(); } else{ var message = "Sir/Maddam you cannot double down at this time."; dealerSays(message, "okay"); } } //Split - Creates a new player hand and assigns a new bet, moves cards as appropriate. hand.prototype.splitHand = function () { } //Creates hand control HTML hand.prototype.createHandCtrlHTML = function (handNum) { if(this.player != "dealer"){ //hand Control Region this.handControl = document.createElement('div'); //sets the class name for player hud and adds to region this.handControl.setAttribute('class', 'hand-control'); this.handDiv.appendChild(this.handControl); //Create hit button this.hitBtn = document.createElement('input'); //sets the class name for player hud and adds to region this.hitBtn.setAttribute('class', 'hit-btn'); var btnId = 'hit-btn-' + this.player + '-' + this.id; this.hitBtn.setAttribute('id', 'btnId'); this.hitBtn.setAttribute('type', 'button'); this.hitBtn.setAttribute('value', 'Hit'); this.hitBtn.setAttribute('name', 'Hit'); this.handControl.appendChild(this.hitBtn); var subvertEvent = this; this.hitBtn.onclick = function () { subvertEvent.hit();}; //Create Stand button this.standBtn = document.createElement('input'); //sets the class name for player hud and adds to region this.standBtn.setAttribute('class', 'hit-btn'); var btnId = 'stand-btn-' + this.player + '-' + this.id; this.standBtn.setAttribute('id', 'btnId'); this.standBtn.setAttribute('type', 'button'); this.standBtn.setAttribute('value', 'Stand'); this.standBtn.setAttribute('name', 'Stand'); this.handControl.appendChild(this.standBtn); this.standBtn.onclick = function () { hands[handNum].stand();}; //Create Double Down button this.dDBtn = document.createElement('input'); //sets the class name for player hud and adds to region this.dDBtn.setAttribute('class', 'hit-btn'); var btnId = 'doubledown-btn-' + this.player + '-' + this.id; this.dDBtn.setAttribute('id', 'btnId'); this.dDBtn.setAttribute('type', 'button'); this.dDBtn.setAttribute('value', 'Double Down'); this.dDBtn.setAttribute('name', 'Double Down'); this.handControl.appendChild(this.dDBtn); this.dDBtn.onclick = function () { hands[handNum].doubleDown();}; //Create Split button this.splitBtn = document.createElement('input'); //sets the class name for player hud and adds to region this.splitBtn.setAttribute('class', 'hit-btn'); var btnId = 'split-btn-' + this.player + '-' + this.id; this.splitBtn.setAttribute('id', 'btnId'); this.splitBtn.setAttribute('type', 'button'); this.splitBtn.setAttribute('value', 'Double Down'); this.splitBtn.setAttribute('name', 'Double Down'); this.handControl.appendChild(this.splitBtn); this.splitBtn.onclick = function () { hands[handNum].splitHand();}; } } //Actived when used hits "deal" button - Adds a hand object to player object if appropriate //!!!Does not support multiplayer by design player.prototype.deal = function () { if(allBetsPlaced == true && roundOver == true){ //wipes old hands clearHands(); //adds a new hand players[0].newHand(); this.newHand(); //sets round over to false as this begins the new round roundOver = false; } } //New hand function creates a new hand called by deal and split player.prototype.newHand = function () { var handIdPass = this.hands.length + 1; this.hands.push(new hand(this.playerName, handIdPass, this.bet)); var handNum = this.hands.length - 1; //alert(this.hands.length); this.createHandHTML(handNum); for (i=0; i<this.hands[handNum].cards.length; i++){ this.hands[handNum].createCardsHTML(i); } } //DOM commands to create cards hand.prototype.createCardsHTML = function (cardNum) { console.log(this.cards); console.log(this.cards[cardNum]); console.log(this.cards[cardNum].name); if(this.player == "dealer" && cardNum == 0){ this.cards[cardNum].imgHTML = '<img src="images/cards/b2fv.png" alt="dealer pocket" />'; } else{ this.cards[cardNum].imgHTML = '<img src="images/cards/' + this.cards[cardNum].image +'" alt="' + this.cards[cardNum].name + ' of ' + this.cards[cardNum].suit +'s" />'; } this.cards[cardNum].cardDiv = document.createElement('div'); var cardId = 'card-' + this.cards[cardNum].id; this.cards[cardNum].cardDiv.setAttribute('id', cardId); $(this.cards[cardNum].cardDiv).hide(); this.cards[cardNum].cardDiv.innerHTML = this.cards[cardNum].imgHTML; this.handDiv.appendChild(this.cards[cardNum].cardDiv); $(this.cards[cardNum].cardDiv).fadeIn(1000); } ..... Hi there. I have a table which I would like to be highlighted with the click of a button, but I can't seem to reference it correctly. I can make the <td> clickable and function, but when I try to apply it to the button I can't make it reference the td cell, rather than change the background color of the button. The function is: function roll(obj){ obj.style.backgroundColor == "pink" ? obj.style.backgroundColor = "#e5e5e5" : obj.style.backgroundColor = "pink"; } Html: <td style="background-color:#e5e5e5;"><img onmousedown="roll(this);" src="images/plus.png" title="Highlight Lot" /></td> Thanks a lot!! :) Hello, If I have a <div id="mydiv"></div> and I use Code: iframe = document.createElement("iframe"); document.getElementById("mydiv").appendChild(iframe) Does the iframe append after </div> <iframe> or does it append <div id="mydiv"> <iframe> </div> Thanks I'm adding text into a text area using document.createTextNode Code: document.getElementById('controlQueueDump').appendChild(document.createTextNode(args+';')); But whenever the user edits the text box, it will never update anything again. I can add as much as I want, but when a user edits it (for example removes the contents), BAM, it is no longer updated. it's a textarea so it should be appending the child to the value attribute. Thanks a lot. hi, I am curious about the use of appendChild() here... I have a solution that does what I want it to do, like this: Code: var sidebarEntry = createSidebarEntry(poly, html); sidebar.appendChild(sidebarEntry); sidebar.replaceChild((sidebarEntry),sidebar.firstChild); but it seems to be going the long way around. Not that it matters much (I guess), but all I want to do is to add an item to the sidebar and when a new item is added, remove the existing one. I tried just using relaceChild() on its own, but the code seems to need something to be replace... Is the above the best way to do it? Or is it possible to set the child to some dummy position like null to begin with, so that the code is not constantly reloading and replacing items (which is what I understand is going on now)? here's the page I'm working on, if you want to see the rest of the code. I appreciate any thoughts. Need to append a hidden value to a floating div that is made via javascript. I tried the most obvious way but I am getting mismatch error in debug. .HTML Code: <input type="hidden" id="desc1" value="blah blah blah" /> .JS Code: var item; var image; var description; function one(){ item = document.getElementById("product1"); image = document.getElementById("i1"); description = document.getElementById("desc1"); expand(); } function expand() { //changes css of the div item.innerHTML = ""; item.style.position = "absolute"; item.style.top = "27%"; item.style.left = "21.3%"; item.style.width = "952px"; item.style.height = "610px"; item.appendChild(image); image.height = "300"; image.width = "400"; image.align = "left"; image.id = "cenimage"; ifrm = document.createElement("IFRAME"); ifrm.setAttribute("src", "form.html"); ifrm.setAttribute("frameborder", "0"); ifrm.setAttribute("scrolling", "no"); ifrm.style.width = 950+"px"; ifrm.style.height = 300+"px"; item.appendChild(ifrm); // mismatch error !! var x = description.value; item.appendChild(x); } Dear Javascripters. I have some code that dynamicly adds textfields, the code works execpt for that I cant figure out how to place the textfield unded the textfield that calls on the function, it now places the new textfields at the bottom of the page.. Ive pasted my code on http://pastebin.com/m2fe9ba26 As soon as you focus in the TextField Productspecialisme: (max. 10) the javascript gets called on.. Thanks in advance. Regards Code: function displayResult() { var damn = document.getElementById("textyar").value; document.getElementById("oneforty").innerHTML = damn; var newDIV = document.createElement('div'); newDIV.className = "tweets"; var newspan =document.createElement('span'); newspan.className = "imagespanleft"; var img = document.createElement("IMG"); img.className="image"; img.src = "tweets/me.jpg"; newDIV.innerHTML = document.getElementById('textyar').value; document.getElementById('leftmaindiv').appendChild(newDIV).appendChild(newspan).appendChild(img); } this is the code , i m trying to create an interface like twitter where u put in text box and tweet appears below in problem is it is creating two divs instead of one , i tried insertbefore() as well but same behaviour plz ask any questions if u r still not clear I am making a web page, and as part of it I have a table that the user can add rows to. My code works in FF and Chrome, but IE is broken. Code: function addrow() { var example=document.getElementById("new"); var addHere=document.getElementById("ticketTable"); var node= example.cloneNode(true); node.id="added"; addHere.appendChild(node); } This code is called when a button is clicked. new is the ID of the row I am adding, and ticketTable is the ID of the table I am adding to. Help please! I'm not a JS programmer, I stumble around. I have a web page that uses: d = document.createElement("script"); d.type = "text/javascript"; d.src = "/var/www/html/UpDist.php"; return (document.body.appendChild(d)); <-- what I want to do UpDist.php returns a value that I need to continue and I can't get the above code to work - UpDist runs, the return value doesn't. Thanks Chuck Hi I discovered something weird that happend to me when trying to add a javascript created table to the document.body. Basically it doesn't add it in IE, but works fine in FF. Actually it does add it in IE, but only shows up if I add a <br/> later in a new statement... What?!?! try my code to see what is going on. (works fine in FF, does bad thing in IE) I tried to narrow the code i was working with down to basics and still have the glitch happen so maybe it's just something wrong with this code, but i couldn't pinpoint it. Also, it's only when i do document.body.appendChild(), not document.body.innerHTML += entireMassiveElement.innerHTML; I need it to work in both browsers with the appendChild() method, because innerHTML is much slower. Any advice appreciated! Thanks! Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>Interace v1.0</title> <style type="text/css"> /****************** * --Panel Style ******************/ .panel { } .panel table td {padding: 0px;} .panel_corner { background-color: #00c0ff; background-repeat: no-repeat; width: 3px; height: 3px; } .panel_sideX {height: 3px; background-color: #00c0ff; background-repeat: repeat-x;} .panel_sideY {width: 3px; background-color: #00c0ff; background-repeat: repeat-y;} .panel_topLeft {background-position: 0px 0px;} .panel_topRight {background-position: -3px 0px;} .panel_bottomLeft {background-position: -0px -3px;} .panel_bottomRight {background-position: -3px -3px;} .panel_top {background-position: -3px -6px;} .panel_right {background-position: -3px 0px;} .panel_left {background-position: 0px 0px;} .panel_bottom {background-position: -3px -9px;} .panel_main { background-color: #00c0ff; } .panel_titlebar { color: #ffffff; font-family: verdana; font-size: 10pt; padding: 3px; padding-top: 0px; overflow: hidden; /* display: none; */ } .panel_title { float: left; height: 18px; overflow: hidden; } .panel_buttons { float: right; } .panel_toolbar { background-color: #444444; color: #eeeeee; font-family: verdana; font-size: 10pt; padding: 3px; overflow: hidden; display: none; } .panel_content { overflow: auto; font-family: arial; color: #eeeeee; font-size: 7pt; font-weight: bold; padding: 10px; border: 1px inset #cccccc; background-color: #444444; } </style> <!--///////////////////////////////////--> <script type="text/javascript"> function makeElement() { var layout = document.createElement("table"); //the table that is the basic layout var top = document.createElement("tr"); var tl = document.createElement("td"); top.appendChild(tl); var tc = document.createElement("td"); top.appendChild(tc); var tr = document.createElement("td"); top.appendChild(tr); var middle = document.createElement("tr"); var ml = document.createElement("td"); middle.appendChild(ml); var mc = document.createElement("td"); middle.appendChild(mc); var mr = document.createElement("td"); middle.appendChild(mr); var bottom = document.createElement("tr"); var bl = document.createElement("td"); bottom.appendChild(bl); var bc = document.createElement("td"); bottom.appendChild(bc); var br = document.createElement("td"); bottom.appendChild(br); layout.appendChild(top); layout.appendChild(middle); layout.appendChild(bottom); layout.style.borderCollapse = "collapse"; tl.className = "panel_corner panel_topLeft"; tc.className = "panel_sideX panel_top"; tr.className = "panel_corner panel_topRight"; tl.style.padding = "0px"; tc.style.padding = "0px"; tr.style.padding = "0px"; ml.className = "panel_sideY panel_left"; mc.className = ""; mr.className = "panel_sideY panel_right"; ml.style.padding = "0px"; mc.style.padding = "0px"; mr.style.padding = "0px"; bl.className = "panel_corner panel_bottomLeft"; bc.className = "panel_sideX panel_bottom"; br.className = "panel_corner panel_bottomRight"; bl.style.padding = "0px"; bc.style.padding = "0px"; br.style.padding = "0px"; //-- Set up the cursors for the bottom, right, and bottomright sides to resize mr.style.cursor = "e-resize"; bc.style.cursor = "s-resize"; // --Now create the internal structure, titlebar, toolbar, content area var main = document.createElement("div"); var titlebar = document.createElement("div"); var toolbar = document.createElement("div"); var content = document.createElement("div"); content.innerHTML = "success!"; main.appendChild(titlebar); main.appendChild(toolbar); main.appendChild(content); mc.appendChild(main); main.className = "panel_main"; titlebar.className = "panel_titlebar"; toolbar.className = "panel_toolbar"; content.className = "panel_content"; //-- create the titlebar internals, title, buttons, cleardiv var title = document.createElement("div"); var buttons = document.createElement("div"); var clear = document.createElement("div"); titlebar.appendChild(title); titlebar.appendChild(buttons); titlebar.appendChild(clear); clear.style.clear = "both"; title.className = "panel_title"; buttons.className = "panel_buttons"; main.style.width = "200px"; return layout; } function go(select) { var stuff = makeElement(); if(select == 1) { //-- Add everything to the container document.body.appendChild(stuff); } else if (select == 2) { //-- Add everything to the container //layout is a table, but innerHTML only returns the inner, so i just added on the outer tags. document.body.innerHTML += ('<table cellpadding="0" cellspacing="0">' + stuff.innerHTML + '</table>'); } //document.body.innerHTML += "<br/>"; } </script> </head> <body> <input type="button" value="test append Element" onclick="go(1);"/><input type="button" value="test innerHTML add" onclick="go(2);"/> <body> </html> i'm working with a javascript on a drupal website, but the saving function seems to work only as soon as i click 2 times on the "save" button. the code that fires the function is: Code: var param ="&usuario="+usuario+"&nivel="+nivel+gano+porc_gano+gasto+porc_gasto+tengo+porc_tengo+debo+ porc_debo+plazo_debo; var s = document.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = server_direction +"setMisDatos?callback=respuestaGuardarMisDatos¶m="+encodeURIComponent(param); var h = document.getElementsByTagName("script")[0]; h.parentNode.insertBefore(s, h); //or h.appendChild(s); the chrome console tells me the error is in the last line i copied, but i don't undertand what kind of error it is. using chrome console (specifically the "network" one), i see that it's written in red, status/text "failed", type "undefined" size/content "13 B / 0 B"; when it works it's: status/text "200/OK", type "text/json", size/content "256 B/ 38B". i'm not an expert with this, is there some more information that could be useful? the code fires a netbeans function, that stores data to a postgresql database, so i have like 100 variables that has to be stored when i click on the "save button". Actually before i put parentNode.insertBefore, there used to be appendChild(s), but then i found out this algorithm from google analytics, which seems to be working better than the previous one. Having said that, i can tell you that the GET works after the first time i click perfectly, with some weird things happening, like if i browse another tab for a while, then go back to the page, and click on save, it won't work again (same error). The variables are written like this: Code: var plazo_debo_casa1 = (getValor("plazo_debo_casa1")); var plazo_debo_casa2 = (getValor("plazo_debo_casa2")); var plazo_debo_casa3 = (getValor("plazo_debo_casa3")); var plazo_debo_prestamo1 = (getValor("plazo_debo_prestamo1")); var plazo_debo_prestamo2 = (getValor("plazo_debo_prestamo2")); var plazo_debo_prestamo3 = (getValor("plazo_debo_prestamo3")); var plazo_debo ="&plazo_debo_casa1="+plazo_debo_casa1+"&plazo_debo_casa2="+plazo_debo_casa2+"&plazo_debo_casa3="+plazo_debo_casa3+"&plazo_debo_prestamo1="+plazo_debo_prestamo1+"&plazo_debo_prestamo2="+plazo_debo_prestamo2+"&plazo_debo_prestamo3="+plazo_debo_prestamo3; and then together in the "param" variable. Is it clearer now? i tried to copy document.head.appendChild(s); instead of parentNode.insertBefore(s,h), but it still behaves the same way. Still not any suggestions? This is part of the javascript file loading on my page, and since the function setMisDatos is in netbeans and it works correctly as soon as it's fired (at least, that's what i notice after the first click), i don't think it's worth copying part of it here, right? are there maybe too many variables for the GET method? is there a way to check GET errors? i'm sorry for not being an expert but i would really like some help here. I have: Windows server 2008 enterprise edition Apache 2.2.15 for windows Netbeans 6.7.1 Glassfish 2.1 Drupal 6.17 (that by default PostgreSQL 8.4 administrated through pgAdmin 1.10.0 (to store Netbeans elaborated data) Firefox and Chrome give me the same problem, tools used are even Httpfox and Fiddler2 Problem: I have a page where the user has to insert his own data, there are 2 types of data, Atributos and Datos. Atributos are on a atributos_user table in PostgreSQL and has 49 columns, Datos on datos_user, that has 119 columns. So when I clic on save, the js file on the page does: Code: function guardaTodo(){ var retvalue; retvalue = guardarMisDatos(); if(retvalue == false) { return retvalue; } retvalue = guardarAtributos(); } The function guardarAtributos works fine, so I guess that this one above is written correctly. The function guardarMisDatos is written the same way, and pretends to collect all the data through Netbeans. so whenever I click on the save button, i get in the web console this: The function guardarMisDatos does like this: Code: var param ="&usuario="+usuario+"&nivel="+nivel+gano+porc_gano+gasto+porc_gasto+tengo+porc_tengo+debo+ porc_debo+plazo_debo; var s = document.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = server_direction +"setMisDatos?callback=respuestaGuardarMisDatos¶m="+encodeURIComponent(param); var h = document.getElementsByTagName("script")[0]; h.parentNode.insertBefore(s, h); //or h.appendChild(s); where every variable of the "param" is taken like this: Code: var plazo_debo_casa1 = (getValor("plazo_debo_casa1")); var plazo_debo_casa2 = (getValor("plazo_debo_casa2")); var plazo_debo_casa3 = (getValor("plazo_debo_casa3")); var plazo_debo_prestamo1 = (getValor("plazo_debo_prestamo1")); var plazo_debo_prestamo2 = (getValor("plazo_debo_prestamo2")); var plazo_debo_prestamo3 = (getValor("plazo_debo_prestamo3")); var plazo_debo ="&plazo_debo_casa1="+plazo_debo_casa1+"&plazo_debo_casa2="+plazo_debo_casa2+"&plazo_debo_casa3="+plazo_debo_casa3+"&plazo_debo_prestamo1="+plazo_debo_prestamo1+"&plazo_debo_prestamo2="+plazo_debo_prestamo2+"&plazo_debo_prestamo3="+plazo_debo_prestamo3; so anytime I call the function, i mean, i click on save, the browser fires: Code: http://www.mirodinero.com:8080/mirodinero-war/setMisDatos?callback=respuestaGuardarMisDatos¶m=%26usuario%3DIsa%20Mirodinero%26nivel%3D109%26gano_sal_neto%3D211113.45%26gano_sal_prof%3D234480%26gano_monet%3D0%26gano_renta_fija%3D0%26gano_renta_vble%3D0%26gano_inmuebles%3D6750%26gano_otros%3D23730%26gano_otros_ing%3D411125%26porc_gano_monet%3D0%26porc_gano_rentaf%3D0%26porc_gano_rentav%3D0%26porc_gano_inm%3D2%26porc_gano_otros%3D2%26porc_gano_otros_ing%3D1%26gasto_casa1%3D1306.46%26gasto_casa2%3D2402.38%26gasto_casa3%3D3999.57%26gasto_prestamo1%3D93475.58%26gasto_prestamo2%3D7325.88%26gasto_prestamo3%3D34090.9%26gasto_tarjetas%3D29443.2%26gasto_ibi%3D5670%26gasto_imp_otros%3D6780%26gasto_seg_inm%3D1320%26gasto_seg_pens%3D3451.22%26gasto_seg_vida%3D330%26gasto_seg_plan%3D34230%26gasto_seg_medico%3D1220%26gasto_seg_coche%3D20%26gasto_luz%3D620%26gasto_agua%3D4550%26gasto_gas%3D320%26gasto_telef_f%3D320%26gasto_telef_m%3D350%26gasto_internet%3D20%26gasto_tv%3D3450%26gasto_hogar%3D20%26gasto_comida%3D20%26gasto_cenas_copas%3D20%26gasto_viajes%3D20%26gasto_vacaciones%3D220%26gasto_mobiliario%3D220%26gasto_ropa%3D2320%26gasto_transp%3D20%26gasto_otros%3D620%26gasto_colegios%3D240%26gasto_univ%3D340%26gasto_master%3D2230%26gasto_otros_gastos%3D73433%26porc_gasto_tarjetas%3D0%26porc_gasto_ibi%3D0%26porc_gasto_trib%3D0%26porc_gasto_seg_inm%3D0%26porc_gasto_seg_pens%3D0%26porc_gasto_seg_vida%3D2%26porc_gasto_seg_plan%3D2%26porc_gasto_seg_med%3D0%26porc_gasto_seg_coche%3D0%26porc_gasto_sum_luz%3D2%26porc_gasto_sum_agua%3D2%26porc_gasto_sum_gas%3D0%26porc_gasto_sum_teleff%3D0%26porc_gasto_sum_telefm%3D0%26porc_gasto_sum_int%3D0%26porc_gasto_sum_tv%3D0%26porc_gasto_nivel_hogar%3D0%26porc_gasto_nivel_comida%3D0%26porc_gasto_nivel_cenas%3D0%26porc_gasto_nivel_viajes%3D0%26porc_gasto_nivel_vacac%3D0%26porc_gasto_nivel_mob%3D0%26porc_gasto_nivel_ropa%3D0%26porc_gasto_nivel_transp%3D0%26porc_gasto_nivel_otros%3D0%26porc_gasto_colegios%3D2%26porc_gasto_univ%3D0%26porc_gasto_master%3D0%26porc_gasto_otros_gastos%3D23%26tengo_casa1%3D1231.11%26tengo_casa2%3D10000%26tengo_casa3%3D22240%26tengo_otras%3D23560%26tengo_monetario%3D1212.34%26tengo_planpensiones%3D23230%26tengo_otros%3D23330%26porc_tengo_casa1%3D1%26porc_tengo_casa2%3D0%26porc_tengo_casa3%3D2%26porc_tengo_otras%3D0%26porc_tengo_monet%3D0%26porc_tengo_plan%3D0%26porc_tengo_otros%3D0%26debo_casa1%3D4340%26debo_casa2%3D23450%26debo_casa3%3D23430%26debo_prestamo1%3D23330%26debo_prestamo2%3D6871.11%26debo_prestamo3%3D11340%26debo_tarjetas%3D61340%26porc_debo_casa1%3D30%26porc_debo_casa2%3D10%26porc_debo_casa3%3D12%26porc_debo_prestamo1%3D1%26porc_debo_prestamo2%3D12%26porc_debo_prestamo3%3D1%26porc_debo_tarjetas%3D4%26plazo_debo_casa1%3D230%26plazo_debo_casa2%3D450%26plazo_debo_casa3%3D122%26plazo_debo_prestamo1%3D3%26plazo_debo_prestamo2%3D12%26plazo_debo_prestamo3%3D4 and doesn't work on the first click, or after 30 seconds idle, like browsing another tab, etc. Tried Solutions: Tried changing h.appendChild(s) to parentNode.insertBefore(s, h) -> works better but not enough Change the order of guardaTodo exchanging the 2 functions -> guardarMisDatos never works Included httpd-default.conf to the httpd.conf file, setting this parameters: Timeout: The number of seconds before receives and sends time out. Timeout 30000 KeepAlive: Whether or not to allow persistent connections (more than one request per connection). Set to "Off" to deactivate. KeepAlive On MaxKeepAliveRequests: The maximum number of requests to allow during a persistent connection. Set to 0 to allow an unlimited amount. We recommend you leave this number high, for maximum performance. MaxKeepAliveRequests 0 KeepAliveTimeout: Number of seconds to wait for the next request from the same client on the same connection. KeepAliveTimeout 500 Divide the guardarMisDatos function into more pieces, like saving only part of the Datos -> it works fine on that columns that i'm saving, but deletes all remaining columns What I'm searching for: I have been searching what kind of setting I should change in Apache httpd.conf to enable a connection that doesn't timeout and opens on the right time. My Apache httpd.conf is of the kind that includes other httpd-*.conf files. Findings: From httpfox i get NS_ERROR_NET_RESET, that occurs on the first click to the "save" button, or after a while that i don't view that page. I counted how much time shall I stay idle to "lose" the connection (and get the same error), it's more or less 30 seconds. So I even checked with fiddler2, and get this kind of message: "ReadResponse() failed: The server did not return a response for this request." Observation (Similar case): I've found this question to have a problem similar to mine, but I already talked with my hosting service and they told me that there is no firewall preventing connections. Solution: I don't have a solution, it's been weeks now, and probably nobody helped me because the stuation was not well explained, that's why now i wrote it down with more details as possible. I hope that now this is well explained and to get some help. Please delete, someone had a retard moment
Hello, I was wondering why my code is perfectly working in Firefox, but does not work in Internet Explorer at all: Code: <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. Any suggestions? Thanks Hi, I'm having trouble with some flash players that don't abide by the style attribute of the div they're created in using Javascript. When the flash-players' source is hard-coded into the page source they render fine, but the more players, the more bloat as you can see in the source of the original page. Any help? Example: http://mcbryanmd.webs.com/Playertest.htm Original Page with old code: http://mcbryanmd.webs.com/ The problem code: Code: <script type="text/javascript"> function clv(obj){ var strst="http://static.livestream.com/scripts/playerv2.js?channel="; var strnm=obj; var strnd="&layout=playerEmbedWide&backgroundColor=0x000000&backgroundAlpha=.5&backgroundGradientStrength=0&chromeColor=0x000000&headerBarGlossEnabled=true&controlBarGlossEnabled=true&chatInputGlossEnabled=true&uiWhite=true&uiAlpha=0.5&uiSelectedAlpha=1&dropShadowEnabled=true&dropShadowHorizontalDistance=10&dropShadowVerticalDistance=10&paddingLeft=0&paddingRight=0&paddingTop=0&paddingBottom=0&cornerRadius=3&backToDirectoryURL=null&bannerURL=null&bannerText=null&bannerWidth=320&bannerHeight=50&showViewers=true&embedEnabled=false&chatEnabled=true&onDemandEnabled=false&programGuideEnabled=false&fullScreenEnabled=false&reportAbuseEnabled=false&gridEnabled=false&initialIsOn=true&initialIsMute=true&initialVolume=10&contentId=null&initThumbUrl=null&playeraspectwidth=4&playeraspectheight=3&mogulusLogoEnabled=false&width=100%&height=100%&wmode=window"; var clsrc=strst + strnm + strnd; var pstrm=document.createElement('script'); document.getElementById('pcont').appendChild(pstrm); pstrm.setAttribute("type","text/javascript"); pstrm.setAttribute("src", clsrc); } </script> <button onclick="clv('random0')" onmouseover="this.style.color='#00FF00'"onmouseout="this.style.color='#FFFFFF'">random0</button> <button onclick="clv('random1')" onmouseover="this.style.color='#00FF00'"onmouseout="this.style.color='#FFFFFF'">random1</button> <button onclick="clv('random2')" onmouseover="this.style.color='#00FF00'"onmouseout="this.style.color='#FFFFFF'">random2</button> <div id="pcont" style="margin-left:250px;display:;position:fixed;top:40px;right:0px;left:0px;bottom:0px;background-color:#CCCCCC;"></div> Hi, every time I try and alert: [ { number:0, secondnumber:0 }, { number:2, secondnumber:1 }, { number:1, secondnumber:2 } ] it just shows [object object], [object object], [object object]. Why is this and what can I do to make the record be shown as it is above in an alert? Thanks. I can't get any info from Firebug except that one line, uncaught exception [object Object]. The code fully worked, then I needed to make it dynamically create Sortables from the scriptaculous library based on how many X were in a table in my database, which I've done, and I'm thinking it may be a simple slight parse error of some type, I'm not too good with Javascript, because now my script barely works. I've double checked the script's source code, the PHP variables are exactly what they should be. Code: print<<<HERE Sortable.create('sortlist$box', { tag: 'img', overlap:'horizontal',constraint:false, containment: $list, dropOnEmpty: true, onChange: function(item) { var list = Sortable.options(item).element; if(changeEffect) changeEffect.cancel(); changeEffect = new Effect.Highlight('changeNotification', {restoreColor:"transparent" }); }, onDrop: function(item) { var thing=Sortable.options(item).element.identify(); var anchors = document.getElementById(thing).childNodes.length-2; if(anchors > 20){ alert('This box had 20 creatures in it already, your last action has not been saved.'); window.location.reload(); } else{ new Ajax.Request("saveImageOrder.php", { method: "post", parameters: { data: Sortable.serialize("sortlist$box") } }); } } }); HERE; $box++; } ?> }); </script> if you solve this I'll send ya $10 via paypal I created a method for displaying an object's properties: Code: renderfunction = false; function showProperty (object, property) { document.write ('<td class="type">' + (typeof object[property]) + '</td>' + '<td class="name">' + property + '</td>'); document.writeln('<td class="value">' + ( (typeof object[property] != 'function') ? object[property] :( (property != 'showProperties') ? ( renderfunction ? object[property]() : ('<span class="self">NOT RENDERED</span>') ) : ('<span class="self">THIS</span>') ) ) + '</td>'); document.writeln('<td class="hasOwnProperty" >' + ( object.hasOwnProperty(property) ? "Local" : "Inherited" ) + '</td>'); if (typeof object[property] == 'function') { document.writeln ('<td class="function">' + object[property] + '</td>'); } else { document.writeln ('<td class="function"> </td>'); } } As long as renderfunction = false, the object is fine coming out of this function. However, if I change renderfunction to true, all my properties become undefined. Why isn't this working as I expect it to? How should I fix it? Thanks in advance, -Brian. |