The code in question, below, is supposed to replace every instance of, well, it's complicated, but basically it's going to take an IP on a page and turn it into a server name (as defined by me in my code). It kinda works in that it replaces some IPs - but only one per IP, so if there's more than one instance on a page, it only replaces one. How do I go about this?
var arrServerInstances = document.body.innerHTML.match('27015');
if (arrServerInstances != null)
{
if (arrServerInstances.length > 0)
{
//UK Servers
document.body.innerHTML = document.body.innerHTML.replace('83.222.246.178:27015','Common Grounds D2 UK');
document.body.innerHTML = document.body.innerHTML.replace('83.222.246.174:27015','Assault 24/7 UK');
document.body.innerHTML = document.body.innerHTML.replace('83.222.246.176:27015','Officefest UK');
document.body.innerHTML = document.body.innerHTML.replace('83.222.246.175:27015','Dustfest UK');
document.body.innerHTML = document.body.innerHTML.replace('83.222.246.177:27015','London Gungame UK');
document.body.innerHTML = document.body.innerHTML.replace('83.222.246.179:27015','Dust 2 Deatchmatch UK');
document.body.innerHTML = document.body.innerHTML.replace('83.222.240.93:27015','Mad Hatter\'s TF2 Tea Party UK');
//US Servers
document.body.innerHTML = document.body.innerHTML.replace('76.74.236.164:27015','Dust/Office Deathmatch US');
document.body.innerHTML = document.body.innerHTML.replace('76.74.236.169:27015','Zombiemod US');
document.body.innerHTML = document.body.innerHTML.replace('76.74.236.165:27015','Dust 24/7 -aMs- US');
document.body.innerHTML = document.body.innerHTML.replace('76.74.236.172:27015','CS 1.6 Gungame US');
document.body.innerHTML = document.body.innerHTML.replace('76.74.239.31:27015','Crackhouse US');
document.body.innerHTML = document.body.innerHTML.replace('76.74.236.166:27015','Iceworld 24/7 US');
document.body.innerHTML = document.body.innerHTML.replace('76.74.236.170:27015','Mad as a TF2 Hatter US');
document.body.innerHTML = document.body.innerHTML.replace('76.74.236.167:27015','Gungame Turbo US');
document.body.innerHTML = document.body.innerHTML.replace('76.74.236.168:27015','CS:S Iceworld 24/7 US');
}
}
P.S. This is the first thing I've ever written in Javascript, I'm a C, C++, Objective C, VBA (God forbid) programmer, so if there's an easier way to do this, please, don't be afraid to point it out.
document.body.innerHTML = document.body.innerHTML.someModification.... Every time you do that, the browser needs to entirely recreate the DOM. In your case, the DOM is being recreated 16 times. There are less destructive solutions.