Benjamin
Benjamin

Reputation: 617

Javascript document.write weird behaviour in Firefox

When I write the following code directly into my html page under a script tag, the string "test" gets appended to my page without replacing the rest of its content (1):

document.write("test");

However, if I place that same code into a separate javascript file like (2):

<script src="http://127.0.0.1/whatever.js" type="text/javascript"></script>

Suddenly that same code rewrites my entire page.

Is there a way to perform a document.write() from a remote file and get the result in (1)?

Thanks for your time.

Upvotes: 2

Views: 273

Answers (3)

mplungjan
mplungjan

Reputation: 177965

The safer solution is to append a document element to the page - that should always work

Upvotes: 0

mwilcox
mwilcox

Reputation: 4132

If you use doc.write while the page page is rendering, it will insert or append the string. If you use doc.write after it's rendered, or after window.onload, it will essentially begin the rendering process again, and overwrite the page.

It's my guess that you are getting asynchronous behavior when loading the script, and it's not executing until after onload. I can't recreate your problem.

Upvotes: 3

sushil bharwani
sushil bharwani

Reputation: 30187

You may be including your script at the top of the page. Where it gets the document.write() stuff and thus writes the text instead of a append behaviour.

Upvotes: 0

Related Questions