The following 3 pages which are user activated popups on my site are not rendering in mozilla firefox. Raw source is displayed instead. I dont know why.

http://herproom.5.forumer.com/index.php?act=Attach&type=post&id=9948

http://herproom.5.forumer.com/index.php?act=Attach&type=post&id=7101

http://herproom.5.forumer.com/index.php?act=Attach&type=post&id=9817

Your title tags are missing, for one thing. They are required.

You have < characters and unencoded quote marks in your JavaScript. This confuses the rendering. You need to remove those characters from the JavaScript, or use an external JavaScript file, to prevent this.

All of the pages are missing their title tag pairs. They belong right after the opening head tag.

It is a good idea to make all JavaScript programs external files.There are too many components in JavaScript programs that can confuse html browsers.

Somebody else seemed to think it was a server problem since it renders perfectly in IE. have added Title tags anyway, The most inportant javascript code cant be external though unfortunately, unless you can think of a suitable re-write?

<table width="83%" td align="center" cellspacing="0" id="submenu">
<tr>
<td align=left>

<table width="100%" height="40px" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="row1" width="100%" height="40px"style="text-align:center"><marquee behavior=scroll direction=up scrollamount=4 onmouseover=this.stop() onmouseout=this.start() id="activetomar"></marquee></td>
</font>
</td></tr></table></td></tr></table>
<script language="javascript" type="text/javascript">
<!--
if(self.location.href.match('http://herproom.5.forumer.com/index.php?&act=Search&CODE=getactive')){
actm = document.getElementById('activetomar');
actm.innerHTML += "<table class='tableborder'>Active Topics Removed</table>"
}
else {
document.write("<iframe name='activetopmarq' src='http://herproom.5.forumer.com/index.php?&act=Search&CODE=getactive' style='display:none;' onload='latemarqHarvest()'></iframe>");
//-->
function latemarqHarvest()
{
martab = window.frames["activetopmarq"].document.getElementsByTagName("table");
for(var i = 0; i < martab.length; i++){
if(martab[i].className == "tablebasic" && martab[i].parentNode.className == "tableborder"){
tabdiv = martab[i].innerHTML
goingNav(tabdiv)
}
}
}
function goingNav(tabdiv)
{
actm = document.getElementById('activetomar');
actm.innerHTML += "<table class='tableborder'>" + tabdiv + "</table>";
}
}
//-->
</script>

If i remove all the frames n other crap to host it as js it wont work anymore.

All you need inside the html file is a small piece of JavaScript, just enough to call a function. Those functions can be in a separate .js file.

I see two rendering killers in the above code.

This doesn't work any more with the latest browsers:

<!--
-->

Get rid of it.

This line confuses the browser's parser:

actm.innerHTML += "<table class='tableborder'>Active Topics Removed</table>"

As soon as the parser gets to the <, it gets lost.

This article has been dead for over six months. Start a new discussion instead.