JavaScript Document.Write Replaces All Body Content When Using AJAX

You can’t use document.write once the document has completed loading. If you do, the browser will open a new document that replaces the current.

Use the innerHTML property to put HTML code inside an element:

function gen_output(ad_content){
  document.getElementById('mb_ad').innerHTML = ad_content;
}

Put the element before the script, so that you are sure that it exists when the callback function is called:

i am text before
<div id="mb_ad"></div>
i am text after
<script type="text/javascript" src="https://stackoverflow.com/questions/2360076/mb.js"></script>

It doesn’t matter much where you place the script, as nothing will be written to the document where it is.

Leave a Comment