views:

427

answers:

3

Hi All,

I'm used to including and using JS like so:

<script type='text/javascript' src='/path/to/script.js'></script>
....
<script type='text/javascript'>
    alert('Do some stuff here, using resources defined in script.js.');
</script>

Just out of curiosity, does anyone know the rule for having an inline script with a src attrib, like:

<script type='text/javascript' src='/path/to/script.js'>
    alert('Do some stuff here, using resources defined in script.js.');
</script>

I can test what DOES happen in various browsers, but would like to know what the official behavior is.

Thanks!

+3  A: 

The HTML specification states

If the src has a URI value, user agents must ignore the element's contents and retrieve the script via the URI.

JacobM
+7  A: 

It's either one or the other, not both. The src attribute of the <script> tag has precedence over the body of the tag.

HTML 4.01 Specification:

The script may be defined within the contents of the SCRIPT element or in an external file. If the src attribute is not set, user agents must interpret the contents of the element as the script. If the src has a URI value, user agents must ignore the element's contents and retrieve the script via the URI.

artlung
Pipped me by 6 seconds!
harto
Didn't realize I was racing. :-)
artlung
+1  A: 

From the HTML 4 standard:

If the src attribute is not set, user agents must interpret the contents of the element as the script. If the src has a URI value, user agents must ignore the element's contents and retrieve the script via the URI.

harto