JavaScript - Remove Script Tags
Hi,
I have a regular expression which removes anything between <script> and </script> tags. The problem comes when there is more than one on a page, eg. Code: <script>lose this</script> content I want to keep <script>lose this</script> Everything in that string is removed... how can I limit it to complete tags only? I did a search but could only find ones that either remove tags only, or have the same problem as mine. Cheers, Gus Similar TutorialsI have a check box right now that calls an onClick event. Here is the Input: Code: <input name="usePad" type="checkbox" value="usePad" id="usePad" onclick="showBind('padShow','padOk')" /> Here is the Script: Code: var xmlhttpshowBind; var showBindDiv; function showBind(BindPage,BindDiv) { xmlhttpshowBind=GetXmlHttpObject(); if (xmlhttpshowBind==null) { alert ("Browser does not support HTTP Request"); return; } var url="/scripts/"+BindPage+".php"; showBindDiv=BindDiv; xmlhttpshowBind.onreadystatechange=showBindGet; xmlhttpshowBind.open("GET",url,true); xmlhttpshowBind.send(null); } function showBindGet() { if (xmlhttpshowBind.readyState==4) { document.getElementById(showBindDiv).innerHTML=xmlhttpshowBind.responseText; } } It works great to fill the div called for, but I would like it to remove the div contents if it's unchecked, I'm not sure how to do this?? Any help would be appreciated! Thank you in advance! I'm working on a webpage where I used this code to display random images. I used it for three images in a row and I keep getting white spacing in between them when they should be right up against each other. This is the code I'm using: Code: <script language="JavaScript"> <!-- /* Random Image Script- By JavaScript Kit (http://www.javascriptkit.com) Over 400+ free JavaScripts here! Keep this notice intact please */ function random_imglink(){ var myimagesblue=new Array() //specify random images below. You can have as many as you wish myimagesblue[1]="images/circles_blue/circle_bl_01.jpg" myimagesblue[2]="images/circles_blue/circle_bl_02.jpg" myimagesblue[3]="images/circles_blue/circle_bl_03.jpg" myimagesblue[4]="images/circles_blue/circle_bl_04.jpg" myimagesblue[5]="images/circles_blue/circle_bl_05.jpg" myimagesblue[6]="images/circles_blue/circle_bl_06.jpg" myimagesblue[7]="images/circles_blue/circle_bl_07.jpg" myimagesblue[8]="images/circles_blue/circle_bl_08.jpg" myimagesblue[9]="images/circles_blue/circle_bl_09.jpg" myimagesblue[10]="images/circles_blue/circle_bl_10.jpg" myimagesblue[11]="images/circles_blue/circle_bl_11.jpg" var ry=Math.floor(Math.random()*myimagesblue.length) if (ry==0) ry=1 document.write('<img src="'+myimagesblue[ry]+'" border=0>') } random_imglink() //--> </script> Is there a way to get the white space removed? Thanks Hi, I got this two javascripts: - Datepicker by Jason Moon (http://calendar.moonscript.com/dateinput.cfm) which can have multiple of this datepicker on a single form - Dynamic Add/Remove rows from http://viralpatel.net/blogs/2009/03/...avascript.html I would like to add rows of fields with each rows having it's individual datepicker. Code: <table id="billcmp_7" width="320" border="0"> <tr> <td width="200" align="center"><script>DateInput('billcmp7_cycle', true)</script></td> <td width="10"> </td> <td width="100" align="center"><input name="billcmp7_name" type="text" /></td> <td width="10"><INPUT type="checkbox" name="chk"/></td> </tr> </table> <table width="320" border="0"> <tr> <td colspan="4" align="center"><INPUT type="button" value="Add Row" onclick="addRow('billcmp_7')" /><INPUT type="button" value="Delete Row" onclick="deleteRow('billcmp_7')" /></td> </tr> </table> I just want this section Code: <script>DateInput('billcmp7_cycle', true)</script> to work like Code: <script>DateInput('billcmp7_cycle_1', false)</script> <script>DateInput('billcmp7_cycle_2', false)</script> when click on the add button. Here's what i meant? Link cant get the time to be different as it is still read as single datepicker. Any1 has any idea how or any alternative? Hello, 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> Hi, I am using this script which is nearly working correctly, but not quite! When a user selects some text from the web-page and copies it, the script is supposed to pick up the current web-page url and create a resource box or credit line that is added to the selected text when the data is pasted. You will see that the meta keywords are used (randomly) as the anchor text and this should be wrapped with the href= tags in order to create a link. Thats the bit that is not workink, but I can not see why. Here is the complete script. Code: function init(){ // Options: var useMetaKeyword = true; // Otherwise, page title var minLength = 40; // Min selection chars var useMetaAuthor = true; // Otherwise use domain var addLinks = true; // Otherwise, just cite at end var skip = new Array("home","link","click here"); // Don't link these (lowercase!) function D(b,a,c){ if(b.addEventListener)b.addEventListener(a,c,false); else b.attachEvent&&b.attachEvent("on"+a,c)} function o(b,a){ if(typeof b=="undefined"||b==null||!RegExp)return false; a=new RegExp("(^|\\s)"+a+"(\\s|$)"); if(typeof b=="string")return a.test(b); else if(typeof b=="object"&&b.className)return a.test(b.className);return false} function E(b,a){ var c=false,j; for(j=b.parentNode;j!=undefined;){ if(b.parentNode==e.body)break; else if(b.parentNode==a){c=true;break}j=j.parentNode}return c} function F(b){ return b.replace(/^\s*/,"") } function G(b){ return b.replace(/\s*$/,"") } function H(b){ return G(F(b)) } var I=new Array("home","link","click here"), e=document, x=window, t=e.getElementsByTagName("body")[0], p=e.getElementsByName("author"), i=e.getElementsByName("keywords"), q=x.location.toString(), u=e.title.toString(), d;if(!Array.indexOf)Array.prototype.indexOf=function(b,a){ var c=-1; for(a=a|0;a<this.length||a==-1;a++) if(this[a]==b)c=a;return c}; if(i.length>0&&useMetaKeyword){ i=e.getElementsByName("keywords")[0].getAttribute("content").split(","); u=Math.floor(Math.random()*i.length); i=i[u].replace(/^\s*|\s*$/,"")} else i=u; p=(p.length>0&&useMetaAuthor)?p[0].getAttribute("content"):e.domain; var y="<p id='credit'><br/>Read more about <a href='"+q+"'>"+i+"</a> by <a href='http://"+e.domain+"' />"+p+"</a></p>"; if(/MSIE/g.test(navigator.userAgent))var v="msie"; else if(/Safari/g.test(navigator.userAgent))v="safChrome"; q=e.createElement("span");q.setAttribute("id","sasText"); t.appendChild(q); d=e.getElementById("sasText"); posType=document.all&&!window.opera&&!window.XMLHttpRequest?"absolute":"fixed"; d.style.position=posType; d.style.top="0px"; d.style.left="-9999px"; D(t,"copy",function(){d.innerHTML=y; if(v=="msie"){ for(var b=e.selection.createRange(), a=b.parentElement(); a.nodeName!="BODY"&&!o(a,"lbExclude");)a=a.parentNode; if(o(a,"lbExclude"))return true; a=e.body.createTextRange(); a.moveToElementText(d); var c=b.duplicate(); c=c.htmlText; if(c.length>minLength){ d.id="tempSasText"; d.innerHTML=c+y; (c=e.getElementById("sasText"))&&c.parentNode.removeChild(c); d.id="sasText";a.select()}} else{b=x.getSelection(); for(a=b.anchorNode;a.nodeName!="BODY"&&!o(a,"lbExclude");)a=a.parentNode; if(o(a,"lbExclude"))return false; if(b==""&&v=="safChrome"){ d.innerHTML=t.innerHTML; a=document.createRange(); b.removeAllRanges(); a.selectNodeContents(d);b.addRange(a)} else if(b.toString().length>minLength){ var j=e.getElementById("credit"); a=b.getRangeAt(0); c=a.cloneContents(); d.id="tempSasText"; d.insertBefore(c,j); (c=e.getElementById("sasText"))&&c.parentNode.removeChild(c); d.id="sasText"; b.removeAllRanges(); a.selectNode(d); b.addRange(a)}} var w=[];a=d.getElementsByTagName("a");for(b=0;b<a.length;b++)w.push(a[b].href); if(addLinks){a=e.getElementsByTagName("a"); for(b=0;b<a.length;b++){var r=a[b].href; if(w.indexOf(r)==-1)if(E(a[b],d)==false){ var f=H(a[b].innerHTML).toLowerCase(); if(skip.indexOf(f)==-1) if((new RegExp(e.domain,"g")).test(r)){ var z=[]; function n(g,k,l){ for(var A=g.childNodes.length;A-- >0;){ var h=g.childNodes[A]; if(h.nodeType===1)h.tagName.toLowerCase()!=="a"&&n(h,k,l); else if(h.nodeType===3) for(var m=h.data.length;1;){ m=h.data.lastIndexOf(k,m); if(m===-1||z.indexOf(k.toLowerCase())!==-1)break; var B=/\w/; if(h.nodeValue.charAt(m-1).match(B)||h.nodeValue.charAt(m+f.length).match(B))break; l.call(window,h,m)}}} function s(g,k){g.splitText(k+f.length); var l=e.createElement("a"); l.href=r;l.appendChild(g.splitText(k)); g.parentNode.insertBefore(l,g.nextSibling); z.push(f.toLowerCase()); w.push(r)}n(d,f,s);f=f.charAt(0).toUpperCase()+f.slice(1);n(d,f,s); f=f.toUpperCase(); n(d,f,s);f=f.replace(/\w\S*/g,function(g){ return g.charAt(0).toUpperCase()+g.substr(1).toLowerCase()});n(d,f,s)}}}}})} window.onload=init; I have put the script on this page: test page To test it, just go to that page, highlight some text (at least 40 characters) copy it, and then paste it into your editor or notepad. You can see that it is picking up some info and writing the attribute line but it doesn't create the link If it helps get it working, I am happy to slim the code down by excluding some features. Any ideas ? I have placed the <script></script> in the <head></head> tags and the page will not work. But placing the <script> below the element that the JS works with allows the page to work but thought the correct method to use was place all JS functions inside the <head> tags? here is a link to the folder I am testing this out on. http://www.realistichostings.com/test_booking/ I have named the two files accordingly, test_booking_page-script is in head tags.php test_booking_page-script is outside head tags.php can anyone tell me why the code works outside the head tag but not when i is inside the head tag ? Hi all, here i got a problem, i want to remove all the Li tag that with a classname"test" . Code: <html> <head> <title>Introduction to the DOM</title> <script> window.onload = function(){ var li = document.getElementsByTagName("li"); for ( var j = 0; j < li.length; j++ ) { if(li[j].getAttribute('class')=='test'){ li[j].parentNode.removeChild( li[j] ); } } }; </script> </head> <body> <h1>Introduction to the DOM</h1> <p class="test">There are a number of reasons why the DOM is awesome, here are some:</p> <ul> <li class="ppp">ppp.</li> <li class="test">It's easy to use.</li> <li class="test">It can help you to find what you want, really quickly.</li> <li class="test">It's easy to use.</li> <li class="test">It can help you to find what you want, really quickly.</li> <li class="test">It's easy to use.</li> <li class="test">It can help you to find what you want, really quickly.</li> <li class="test">It's easy to use.</li> <li class="test">It can help you to find what you want, really quickly.</li> <li class="test">It's easy to use.</li> <li class="test">It can help you to find what you want, really quickly.</li> <li class="test">It's easy to use.</li> <li class="test">It can help you to find what you want, really quickly.</li> <li class="test">It's easy to use.</li> <li class="test">It can help you to find what you want, really quickly.</li> <li class="test">It's easy to use.</li> <li class="test">It can help you to find what you want, really quickly.</li> </ul> </body> </html> I'm using jQuerys' $.ajax to load a div with some details in it and i want to use the esc key to close the div. Heres the code so far Code: $('.username span').click(function(){ $('.MiniPro').remove(); ID = $(this).parent().attr('ID'); This = $(this).parent(); miniPro(); }); function miniPro() { $(This).append('<div class="MiniPro">Loading...</div>'); $.ajax({ type: 'POST', data: 'userID='+ID, url: 'processing/miniPro.php', success: function(msg) { $('.MiniPro').remove(); $(This).append('<div class="MiniPro"'+msg+'<div class="MiniProClose">X</div></div>'); } }); } Is it even possible to do that? Hello, I'm currently using this code: I want it so that there isnt a box around the countdown, and the countdown is the same text as "you will be redirected in" here is it in action: http://www.playelite.org/redirect.html Code: <form name="redirect"> <center> <font face="Arial"><b>You will be redirected in: <form> <input type="text" size="3" border="0" name="redirect2"> </form> seconds</b></font> </center> <script> <!-- var targetURL="http://google.com" var countdownfrom=10 var currentsecond=document.redirect.redirect2.value=countdownfrom+1 function countredirect(){ if (currentsecond!=1){ currentsecond-=1 document.redirect.redirect2.value=currentsecond } else{ window.location=targetURL return } setTimeout("countredirect()",1000) } countredirect() //--> </script> Thanks Hi Guys, I'm new at JS. I need to remove TR elements from parent table but the problem is there are no table ID/Name Is it possible to perform it? Please see attach - i need remove red marked block... what scrip i have to use if i will put it to the green block? Thank you. I am using this script that gets messed up when you resize the window. I figured out that I could use this other script to do stuff just after the window gets resized. Code: (function($,sr){ // debouncing function from John Hann // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/ var debounce = function (func, threshold, execAsap) { var timeout; return function debounced () { var obj = this, args = arguments; function delayed () { if (!execAsap) func.apply(obj, args); timeout = null; }; if (timeout) clearTimeout(timeout); else if (execAsap) func.apply(obj, args); timeout = setTimeout(delayed, threshold || 100); }; } // smartresize jQuery.fn[sr] = function(fn){ return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); }; })(jQuery,'smartresize'); // usage: $(window).smartresize(function(){ // code that takes it easy... }); So I re-instantiate the misbehaving script in there so it fires whenever the window is resized (I changed it to 500 so it really only fires once after you are done resizing). This fixes it. The new instance doesn't have a problem but the old instance is still there and messed up. so I use. $($.misbehaving-script).remove(); just before instantiating after window resize, which gets rid of broken instance. Problem solved.. Except that messes up a different script! It's driving me crazy. Any advice would of course be very welcome. i am doing an edit operation in my web page by changing a image, but when i am revisiting the page it is showing older image rather than new one. So can any one say how to refresh the page without using any button like window.location.reload(). Is there any way to use math.random in url?? Is there a way to do this? Maybe something like this... Code: $("td:contains(' ')").css("display", "none"); Although for whatever reason, the code above isn't working... is there a function in JS to remove a string from some text but without using the replace function? I am removing a specific string from my text using and using the replace function of the match text with a non breaking space but what i really do not want to add anything to my html. The replace is been place in a visual editor box after the user adds text and save the form, this is the code i am using to replace the code, i am using a regular expression to look for <META content="MSHTML 6.00.6000.16890" name="GENERATOR"><LINK title="/iw/ewebeditpro20/ektnormal.css" href="/iw/ewebeditpro20/ektnormal.css" rel="stylesheet"> : // Pass 1 - Removes extra code checks on Regular Expression inside replace function var newstrchanged = strEscaped.replace(/^%26%2365279%3B%20%3CMETA%20content%3D%22MSHTML%20.+.stylesheet%22%3E/g, ''); I'm trying to set the contact form on http://gspbuzz.com/test to remove the text when a user clicks it. Any idea how I can accomplish this?
Hello I have a div I want to delete any word start by /art and finish by les/ inside the div content. Here an example below : Before : PHP Code: <div id="article" class="article"> Du texte, du texte /articles sur les boucles/ du texte ... du texte. </div> After : PHP Code: <div id="article" class="article"> Du texte, du texte du texte ... du texte. </div> Thank You Hi. I have a script which adds table rows dynamically to a table, when I delete a few removes with the jquery .remove(); sometimes the browser hangs and I have to refresh the page to make the page to work. Any ideas? I was thinking to put a sleep or timeout command just after the row removal, because if I remove rows slowly it won't crash, but if you remove 3-4 rows quickly it will crash, please help! Code: <!-- Add-in device.js files are placed here --> <div id="deviceScript"></div> What I have been doing is clearing this out when I select a new (add-in) device and append a script tag with its .src file. I have some vague idea that unhooking an external js file might remove its code from memory. If not is there a way to do so? Functions in different script files have the same name - for example, I use start() to set up each device. It seems that the latest device start() overwrites the one in memory - but I am not sure if overwrite means delete last one or whether there is some horrendous build up of dross going on. Any clarification appreciated. Hi Guys, Someone please help me how to add new function to remove the field, i have js script function that add new field as follows Code: <script language="javascript"> fields = 0; function addInput() { if (fields != 10) { var htmlText = " <input type='text' name='friends[]' value='' size='auto' maxlength='45' /><br />"; var newElement = document.createElement('div'); newElement.id = 'new_field'; newElement.innerHTML = htmlText; var fieldsArea = document.getElementById('new_field'); fieldsArea.appendChild(newElement); fields += 1; } else { alert("Only 10 fields allowed."); document.form.add.disabled=true; } } </script> but i need some helps to add new functions for removing field, For any suggest and pointer would be appreciate. Hi, I am new to development in javascript. I want to remove items in an array by passing index values. The index values may have 1 or more values. For example, i have the following array var arr1=new Array("aa","bb","cc","dd","ee","ff"); var index = new Array(); index[] = 3; index[] = 5 Using the above index values, i want the output as "aa","bb","cc","ee" when i used the slice function, i am not getting the desired output like the one above. Can someone please help me out? Thanks Raja |