JavaScript - Simple 'change Text In A Html Element' Script Fails
Hello
I am pretty new to AJAX & I am making a simple program to input new text refresh inside the HTML element that has the id='result'. My Problem: - The AJAX script fails when I try to change the text inside 'result' using my code, sometimes a whole new page opens with the text I wanted to put inside the result HTML element. Sometimes I just get a notification that an error occured. - I believe it is because of my function state_changed & using the parameter element_id with the function getElementById(element_id).innerHTML = ...; - It should be easy to see where my problem occurs when you look at my code Any advice on why the script fails & how to fix it would be extremely helpful. Code: var xmlHttp; function ajax_compatible() { // Post: Returns an object if browser is AJAX compatible else false. if (window.XMLHttpRequest) { // users web browser can support AJAX return ( new XMLHttpRequest() ); } else if (window.ActiveXObject) { // users web browser is IE6 and IE5 return ( new ActiveXObject("Microsoft.XMLHTTP") ); } else { alert("Unfortunately your browser does not support AJAX."); return null; } } function get_cookie(cookie_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(cookie_name + "="); if (c_start != -1) { c_start = c_start + cookie_name.length+1; c_end = document.cookie.indexOf(";",c_start) if (c_end == -1) { c_end = document.cookie.length; } return unescape(document.cookie.substring(c_start,c_end)) } } return "" } function add_comment() { // Post: Add user comment & rating to database and update new table row. // DO WE NEED TO SEND COOKIE ASWELL OR IS IT ALREADY DONE??? xmlHttp = ajax_compatible(); if (xmlHttp == null) { return; } var url = 'http://localhost:8000/cgi-bin/main.py'; alert("add_comment() running"); // Extract CGI variables to pass onto python script var id = document.getElementById('videoID').value; var video_id = 'videoID=' + id; var rating = 'rating=' + document.getElementsByName('rating').value; var comment = 'comment=' + document.getElementById('comment').value; var add_rating = 'addRating=' + document.getElementById('addRating').value; //var cookie = document.cookie; cgi_var = video_id + '&' + rating + '&' + comment + '&' + add_rating; // + '&' + cookie; // open python script xmlHttp.open('POST',url,true); xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Error is in below line xmlHttp.onreadystatechange = state_changed(id); // if I use the following line then it works // xmlHttp.onreadystatechange = test; xmlHttp.send(cgi_var); } function state_changed(element_id) { // Post: Use one function that will be used for each page update. // This function sends the text returned by the python server script // onto the browser(HTML element with the id 'element_id') to be displayed. if (xmlHttp.readyState == 4) { document.getElementById(element_id).innerHTML = xmlHttp.responseText; } } function test() { // Post: used to test where the problem occurs // This function works if (xmlHttp.readyState == 4) { document.getElementById('result').innerHTML = xmlHttp.responseText; } } Similar TutorialsHello, I am new to Javascript. I copied this script from the web, but I get an error at this line: parent.removeChild(child); The error says "Invalid argument". Any suggestions are greatly appreciated. Code: <div id="parent" align=center> <form name=mainfrm method=post> <script language="JavaScript"> function doDelete(str1,str2) { var parent = document.getElementById(str1); var child = document.getElementById(str2); parent.removeChild(child); alert ("box removed"); } </script> <br><br> <table> <td class=stdbut1 onmouseover="this.className='stdbut1on'" onClick="doDelete('parent','child');" onmouseout="this.className='stdbut1'">Delete Box</td> </table> <br><br> <div id="child" class=titlebox1>Box</div> </form> </div> I have a function called onload that includes this: Code: window.onload=new function(){ ... if (menuletter!=false){ document.cookie="hddrv="+(menuletter)+"; path=/; expires="+exp.toGMTString(); document.enterIndex.src='enter2.gif'; // window.setTimeout("goIndex()",7000); // return false; } ... } <img border="0" name="enterIndex" src="enter1.gif" width="413" height="41"> If I uncomment the two lines and comment the document image swap line, they execute perfectly, so the routine works. But if I try to do the image swap instead of the two commented lines, it doesn't swap. Of course, the image enter1.gif and enter2.gif exist. What am I doing wrong? I have one html text area in my JSP file. when i click on that text area, a pop-up will come, in that pop-up i have list of items. So after selecting a item from that pop-up list, need to click okay. so that text area will update with the selected value. In this case, i need to compare the first text area value and updated text area value. How can i do that in Java Script. Try to figure out how to change the css display property of a table, from hidden, to block outside of an iframe. //This data is outside of the iframe Code: <style> #table {display: hidden; z-index: 100;} </style> <table id='table' ><td> ......data</td></table> //This link is inside of an iframe Code: <script> function change(){ document.getElementById("table").style.display='block'; } </script> <a href='javascript:void(0)' onclick='change()'>Change</a> Ok my menuBarContainer div wont change width or height... I've tried everything... whats stopping it? http://opentech.durhamcollege.ca/~in...rittains/labs/ How do i set a page element as a variable and change it? Ive googled the internet like crazy for an answer for this, but couldnt find it. Im trying to create an animation. My question is, how do i change the width of a div onclick? Essentially, I want it to add one percent of the value of the width of the div every one second.. PHP Code: <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Loading Bar</title> <script> var x = getElementById("loadbar").style.width; function load(){ setTimeout ( "progress()", 1000 ); } function progress(){ x++; } </script> </head> <body> <div id="load" style="border:thin solid #6699FF; width:300px; height:10px"> <div id="loadbar" style="background:#6699CC; width:0%; height:100%"> </div> </div> <a href="#" onclick="load()">Click to load</a> </body> Hi all, I'm working on a script which is actually a very simple tab system. Code: <script> window.addEvent('domready', function() { var tabs = $$('div[id^="tab"]'); tabs.fade('hide'); $$('#buttons li a').each(function(element,index){ element.addEvent('click',function(){ tabs.fade(0); tabs[index].fade(1); }); }); }); </script> <ul id="buttons"> <li><a href="#">button 1</a></li> <li><a href="#">button 2</a></li> <li><a href="#">button 3</a></li> <li><a href="#">button 4</a></li> </ul> <div id="tab1">content for button 1</div> <div id="tab2">content for button 2</div> <div id="tab3">content for button 3</div> <div id="tab4">content for button 4</div> I'm trying to change the style of the selected button. I mean that the button which is selected each time, should be highlighted (bold text). How can I add this function in the existing code? Can you help me please? I'm using the 1.2.0 version of mootools for this. The script inside my opening if statement is working, but is the rest of this written right? I'm just want my script to run after it makes sure that a div class named single-journal-entry-wrapper is on the page. Code: function doit() { document.getElementsByTagName("div") for ( var x = 0; x < div.length; x++ ) { var div = div[x]; if ( div.className.indexOf("single-journal-entry-wrapper") >= 0 ) { do somethang!} } } { Ok, Simpler question. I'm trying to get the text in an xml element. Instead of getting just the text in the first child element I'm getting the text of all the children elements. How can I get it from just the first? Code: var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); function xmlload(filexml) { xmlDoc.async="false"; xmlDoc.load(filexml); xmlObj=xmlDoc.documentElement; } xmlload('urlhere'); document.getElementById("nmbr").value=myVar; myVar = xmlObj.childNodes(0).childNodes(19).firstChild.text; document.getElementById("comment_t").innerText= myVar; Hello, I have this short script he Code: function resizeImages() { //Function will be ran onload in the <body> tag var img = document.images; //Puts all the images in an array for (var i = 0; i < img.length; i++) { //A loop to execute a set of functions for every image var parentElement = img[i].parentNode; //Gets parent element of image var parentWidth = parentElement.width(); //Gets width of parent element (value is an integer without "px") var imgWidth = img[i].width(); //Gets image width var parentHeight = parentElement.height(); //Gets height of parent element var imgHeight = img[i].height();//Gets image height if (parentWidth < imgWidth){ img[i].width(parentWidth); //Sets width of image to width of parent element img[i].style.height = "auto"; //Scales height } if (parentHeight > imgHeight){ img[i].height(parentHeight); //Sets height of image to height of parent element img[i].style.width = "auto"; //Scales width } alert(parentWidth); //To test if parentNode is working correctly. Should return an integer. } } It's got some JQuery in it (.width() and .height()) to make manipulation of the dimensions easier to manage. Basically, it's supposed to resize all the images on the webpage to the size of their parent elements (divs) without losing aspect ratio. Image overflow will be hidden so that no matter what the aspect ratio of the image and it's container the largest possible area of the image will be exposed. The alert() function I have at the bottom is supposed to run as a test that each loop is working correctly. However, my images don't get resized and I get no alert. I think the loop may be breaking out before it goes through everything. Anyone have ideas? I'm not a Javascript coder. Thank you, Jared Ok so I know basic html and css, no problem but i just started learning javascript and this class is kicking my but! I have this assignment due tonight and I'm taking this class online so there not much help beyond google. I know it's "simple' but I cannot figure this out for the life of me!!! It driving me bonkers, and I really don't want to fail. So any help would be more that appreciated! K here is the html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Change Calculator</title> <link rel="stylesheet" type="text/css" href="default.css" /> <script type="text/javascript" src="calculate_coins.js"></script> </head> <body> <div id="content"> <h1>Change Calculator</h1> <label>Enter number of cents (0-99):</label> <input type="text" id="cents" /> <input type="button" value="Calculate" name="calculate" id="calculate" /><br /> <p> </p> <label>Quarters:</label> <input type="text" id="quarters" class="disabled" disabled="disabled" /><br /> <label>Dimes:</label> <input type="text" id="dimes" class="disabled" disabled="disabled" /><br /> <label>Nickels:</label> <input type="text" id="nickels" class="disabled" disabled="disabled" /><br /> <label>Pennies:</label> <input type="text" id="pennies" class="disabled" disabled="disabled" /><br /> <p> </p> </div> </body> </html> i need to get it to function properly. Please HELLP ME!!! Hi all, I've messing around with CSS and I would like to change the <body> 'class' when the user selects a hyperlink. To do this I've employed the OnClick method within the hyperlink which calls the function updateBodyClass(). Within upDateBodyClass() I would like to add the string "extraMenu" to the body class. Before selecting the hyperlink the body is: <body id="twoColLayout" class="tools"> I want this to change to: <body id="twoColLayout" class="tools extraMenu"> This is the code I currently have but it doesn't work. Please can someone point me in the right direction. Thankyou in advance for your time. <html> <head> <title>test</title> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script> function updateBodyClass() { document.getElementById("body").className="tools"; document.getElementById("body").className+=" extraMenu" return; } </script> </head> <body id="twoColLayout" class="tools"> <a href="index.php" onClick="updateBodyClass()">Search Bookmarks</a> </body> </html> Hi folks! I know this is a really simple script, but I'm still a beginner, still learning and struggling..haha thanks for sticking with me Anyway my aim here is to have x,y, or z Div come to the front onClick. I've figured out how to do it with two Div's (using the code below) but not with 3 or more. I'm not attached to the code, so if you want to suggest something totally different I am all ears! Thank you greatly! ian Code: <script> function changeZunder() { layer1.style.zIndex = 1; layer2.style.zIndex = 2; } function changeZover() { layer1.style.zIndex = 2; layer2.style.zIndex = 1; } </script> ---- <body> <div id="layer1" style="z-index: 1; position: absolute;" onClick="changeZover()"> FIRST BOX </div> <div id="layer2" style="z-index: 1; position: absolute;" onClick="changeZunder()"> SECOND BOX </div> </body> I have a javascript code, which initiates via "onClick" when a user clicks on a checkbox. I downloaded the sample code, but the problem is is that I need the javascript to be initiated automatically, not when a user clicks on a checkbox. I would greatly appreciate it if anyone could help me resolve this issue. Below is a sample of the code I'm using. Thanks in advance. Code: <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <!-- iPad/iPhone specific css below, add after your main css > <link rel="stylesheet" media="only screen and (max-device-width: 1024px)" href="ipad.css" type="text/css" /> <link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="iphone.css" type="text/css" /> --> <!-- If you application is targeting iOS BEFORE 4.0 you MUST put json2.js from http://www.JSON.org/json2.js into your www directory and include it here --> <script type="text/javascript" charset="utf-8" src="phonegap.0.9.6.min.js"></script> <script type="text/javascript" charset="utf-8" src="SAiOSAdPlugin.js"></script> <script type="text/javascript" charset="utf-8"> // If you want to prevent dragging, uncomment this section /* function preventBehavior(e) { e.preventDefault(); }; document.addEventListener("touchmove", preventBehavior, false); */ var gLastAdLoadedDate = null; var gTotalAdsLoaded = 0; var gTimerId = null; function onBodyLoad() { document.addEventListener("deviceready", onDeviceReady,false); } function onOrientationChange() { //alert(window.orientation); } /* When this function is called, PhoneGap has been initialized and is ready to roll */ function onDeviceReady() { // listen for orientation changes window.addEventListener("orientationchange", window.plugins.iAdPlugin.orientationChanged, false); // listen for the "iAdBannerViewDidLoadAdEvent" that is sent by the iAdPlugin document.addEventListener("iAdBannerViewDidLoadAdEvent", iAdBannerViewDidLoadAdEventHandler, false); // listen for the "iAdBannerViewDidFailToReceiveAdWithErrorEvent" that is sent by the iAdPlugin document.addEventListener("iAdBannerViewDidFailToReceiveAdWithErrorEvent", iAdBannerViewDidFailToReceiveAdWithErrorEventHandler, false); var adAtBottom = false; setTimeout(function() { window.plugins.iAdPlugin.prepare(adAtBottom); // by default, ad is at Top }, 1000); } function iAdBannerViewDidFailToReceiveAdWithErrorEventHandler(evt) { alert(evt.error); window.plugins.iAdPlugin.showAd(false); var elem = document.getElementById("showAd"); elem.checked = false; } function iAdBannerViewDidLoadAdEventHandler(evt) { // if we got this event, a new ad is loaded var elem = document.getElementById("lastAdLoaded"); gLastAdLoadedDate = new Date(); elem.innerHTML = gLastAdLoadedDate.toLocaleString(); elem = document.getElementById("showAd"); elem.disabled = false; elem.checked = true; window.plugins.iAdPlugin.showAd(true); gTotalAdsLoaded++; elem = document.getElementById("totalAdsLoaded"); elem.innerHTML = gTotalAdsLoaded.toString(); if (gTimerId) { clearInterval(gTimerId); } gTimerId = setInterval(lastAdLoadedInterval, 1000); } function lastAdLoadedInterval() { var now = (new Date()).getTime(); var diff = now - gLastAdLoadedDate.getTime(); var elem = document.getElementById("lastAdLoaded"); var ms_in_a_year = 31449600000; /* 1000ms x 60s x 60m x 24hrs x 7d x 52w */ var ms_in_a_week = 604800000; /* 1000ms x 60s x 60m x 24hrs * 7d */ var ms_in_a_day = 86400000; /* 1000ms x 60s x 60m x 24hrs */ var ms_in_an_hour = 3600000; /* 1000ms x 60s x 60m */ var ms_in_a_minute = 60000; /* 1000ms x 60s */ var ms_in_a_second = 1000; var milliseconds = Math.floor(diff); var seconds = Math.floor(milliseconds / ms_in_a_second) % 60; var minutes = Math.floor(milliseconds / ms_in_a_minute) % 60; var hours = Math.floor(milliseconds / ms_in_an_hour) % 24; var days = Math.floor(milliseconds / ms_in_a_day) % 7; var weeks = Math.floor(milliseconds / ms_in_a_week) % 52; var years = Math.floor(milliseconds / ms_in_a_year); var caption = seconds + "s ago"; if (minutes > 0) { caption = minutes + "m " + caption; } if (hours > 0) { caption = hours + "h " + caption; } if (days > 0) { caption = days + "d " + caption; } if (weeks > 0) { caption = weeks + "w " + caption; } if (years > 0) { caption = years + "yr " + caption; } elem.innerHTML = caption; } function showAdClicked(evt) { window.plugins.iAdPlugin.showAd(evt.checked); } </script> </head> <body style="margin:0; padding:0;border:1px solid blue;" onload="onBodyLoad()"> <span style="position:absolute; top:0;"> This is some text at the top of the webview. </span> <br /><br /> <form> <input type="checkbox" id="showAd" name="showAd" disabled="disabled" onclick="showAdClicked(this);">Show iAd</input><br /> <br /> <span>New Ad Loaded: <span id="lastAdLoaded">Waiting.</span></span><br /> <span>Total Ads Loaded: <span id="totalAdsLoaded">None.</span></span> </form> <br /> <span style="position:absolute;bottom:0"> This is some text at the bottom of the webview. </span> </body> </html> The javascript (SoiOSADPLUGIN.JS) that is referenceD in this html page i also pasted below he Code: /** * Constructor */ function SAiOSAdPlugin() { } /** * show - true to show the ad, false to hide the ad */ SAiOSAdPlugin.prototype.orientationChanged = function() { PhoneGap.exec("SAiOSAdPlugin.orientationChanged", window.orientation); } /** * show - true to show the ad, false to hide the ad */ SAiOSAdPlugin.prototype.showAd = function(show) { PhoneGap.exec("SAiOSAdPlugin.showAd", show); } /** * atBottom - true to put the ad at the bottom, false to put the ad at the top */ SAiOSAdPlugin.prototype.prepare = function(atBottom) { if (!atBottom) { atBottom = false; } PhoneGap.exec("SAiOSAdPlugin.prepare", atBottom); } /** * Install function */ SAiOSAdPlugin.install = function() { if ( !window.plugins ) window.plugins = {}; if ( !window.plugins.iAdPlugin ) window.plugins.iAdPlugin = new SAiOSAdPlugin(); } /** * Add to PhoneGap constructor */ PhoneGap.addConstructor(SAiOSAdPlugin.install); I get the code to work when I click the checkbox, and it satisfies my needs, but having a checkbox toggle is not exactly ideal for this function. Is there anyway for me to have the "Onclick" function in this code changed to onload? Dear forum, I'm making a site for my g/f – She's writing angel messages for each day of the year, 1 message on 1 page and these (eventually 366 pages) are accessed from this one page: http://www.helderziendelezingen.be/w...per-datum.html This menu page uses JS to slide to particular months. The place I'm stuck is how could it be possible to go from a particular days message, back to the month of that message in the per-datum page (having the page slid to that month)... for clarities sake... “Terug” means “back”, so for example to click on october 22nd message, read the message, and terug back to Octobers seeds rather than back to the per datum pages month selection calender. My best effort so far is to put this in the a tag: onclick="document.getElementById('waarzegstermove').style.cssText='left: -1000px;';" -1000px would be Januarys terugs, -2000px Februarys terugs etc to have it already slid to that month, this code works when on the same page, but when its on the message page before loading up the per datum page it seems to lose this setting. I would really appreciate help on this – to be honest I've never used cookies, I dont know what they're for, am I on the right track, is there something else involved like location: hash? or is this what cookies are for? many thanks, Will Trying to add the text "• " to a text area, but it will just print the symbol. Is there a way you can print the string itself? Code: function add(myValue) { //IE support if (document.selection) { desc.focus(); sel = document.selection.createRange(); sel.text = myValue; } Code: ...onclick="add('• ')" I am not a master of javascript. I am only beginning. I know how to edit most codes I come by to make them work for what I need them for, but I haven't really been able to get this concept to work. I know there is a way to count the characters of a text box. I have used them a thousand times. (Think twitter) I am making a forum, and I am not self-hosting. So I don't have access to change all of the HTML on the forum software. So, here is what I want to do, and I really just need to know if its possible. There is a reply box on this forum. A pre-existing element. It cannot be changed by going into the html, because I don't have access to it. I want a box to appear underneath it to count the number of characters that are typed into that box, and cut off if they go over. I know of codes that allow you to count characters in a box you create, because you can add the "onkeyup=" to the html... I just don't have access to that part. Do you see where I'm getting at? So to further illustrate, something like this: If it can be done, can someone show me how? I have the idea of how it might work, but I don't know enough to make my own code, only enough to figure out what existing code is talking about. I am sorry if this doesn't make sense. I can try to explain further if need be. |