Loading ...
Sorry, an error occurred while loading the content.

1364Re: document.write messages

Expand Messages
  • aceblchboy
    Jul 10, 2010
    • 0 Attachment
      --- In jslint_com@yahoogroups.com, "stevengrindle2002" <stevengrindle2002@...> wrote:
      >
      > Folks,
      >
      > I am new to JSLint but have used JavaScript in several web pages I have created. I am working my way through the JSLint error messages, correcting my code, learning how to set the options and trying to make my JavaScript code better.
      >
      > I get lot of messages about 'document.write' because I use it frequently. I would like to understand
      > 1) Why does JSLint object to 'document.write'?
      > 2) What should I do to fix my code?
      >
      > Example 1 of dozens of similar messages:
      >
      > Problem at line 15 character 5: document.write can be a form of eval.
      >
      > document.write(nbr+" is nbr<br />"); //absolute value
      >
      > Steven G.
      >
      document.write can be a form of eval.
      From Crockford's JSlint instructions:
      eval is evil
      The eval function (and its relatives, Function, setTimeout, and setInterval) provide access to the JavaScript compiler. This is sometimes necessary, but in most cases it indicates the presence of extremely bad coding. The eval function is the most misused feature of JavaScript.

      The eval method takes a string containing JScript code, compiles it and runs it, but the computing cost-effectiveness of starting an interpreter to compile it outweighs other far more lightweight methods that achieve exactly what you want.

      Try obtaining a reference to the desired element where you want to place your text or HTML, and drop your code in with the easy non-standard way: elementReference.innerHTML = nbr+" is nbr<br />" or the standards way elementReference.appendTextNode(nbr+" is nbr").appendChild(document.createElement("br"));
    • Show all 4 messages in this topic