Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to call external JavaScript function in HTML

I have a small chunk of code I can't seem to get working. I am building a website and using JavaScript for the first time. I have my JavaScript code in an external file 'Marq_Msg.js' which looks like this:

var Messages = new Array(); Messages[0] = "This is message 1"; Messages[1] = "This is message 2"; Messages[2] = "This is message 3"; Messages[3] = "This is message 4";    function scroll_messages() {   for (var i = 0; i < Messages.length; i++)         document.write(Message[i]);  } 

and in my HTML file 'Index.html' I am trying to call it like this:

    <div id="logo">         <marquee scrollamount="5" direction="left" loop="true" height="100%" width="100%">         <strong><font color="white"><script src="Marq_Msg.js">scroll_messages()</script></font></strong>         </marquee>     </div> 

The 'logo' div is a CSS piece that I'm trying to marquee inside of. If I put the code embedded inside the 'head' tag and call it, it works perfectly! There are a few other things id like to do with this code (like space the messages out a little) but I can't get the code to work in the first place. I've also tried adding:

<script src="Marq_Msg.js"></script> 

in the 'head' tag with a separate call, that was a no go. I also tried instead using:

<script type="text/javascript" src="Marq_Msg.js">scroll_messages()</script> 

Hell, i even had the function try returning a string (even hardcoded a simple "hello" to be returned) but that didnt work either with and without the 'type':

//Marq_Msg.js function scroll_messages() {    return "hello"; }  //index.html <script type="text/javascript" src="Marq_Msg.js">document.write(scroll_messages())</script> 

What am I missing? Any help would be greatly appreciated!! I've looked all over Google, and every site I find wants to do it using some 'form'. I just want messages to be displayed across, no form attached.

like image 782
Kevin Fauver Avatar asked Mar 02 '12 09:03

Kevin Fauver


People also ask

How can I use external JavaScript function in HTML?

To include an external JavaScript file, we can use the script tag with the attribute src . You've already used the src attribute when using images. The value for the src attribute should be the path to your JavaScript file. This script tag should be included between the <head> tags in your HTML document.

How do you reference JavaScript in HTML?

Save the script file with a . js extension, and then refer to it using the src attribute in the <script> tag. Note: The external script file cannot contain the <script> tag.

How do you import a function in HTML?

HTML imports use the <link> element to reference the file that you wish to import; this works in a similar way to how you include stylesheets. Make sure that you set the rel attribute to import to indicate to the browser that the referenced file should be imported into the document.


1 Answers

If a <script> has a src then the text content of the element will be not be executed as JS (although it will appear in the DOM).

You need to use multiple script elements.

  1. a <script> to load the external script
  2. a <script> to hold your inline code (with the call to the function in the external script)

    scroll_messages();
like image 80
Quentin Avatar answered Sep 25 '22 13:09

Quentin