Include .js file inside HTML and call functions from another <script>

I

Iddo

Hi,
I am having a strange problem...
I have an HTML file which has 2 script tags:
1) <script language="javascript" id="ABC" src="ABC.js" />
2) <script id="general" language="javascript">
function foo()
{
alert("aaa");
}
</script>

I am trying to call the "foo" function and also functions from the
"ABC.js" file.

when calling the ".js" file - functions are called fine!
however, when calling the "foo" function - I get an error! ("Object
expected")

My HTML:
<HTML>
<head>
<script language="javascript" id="ABC" src="ABC.js" />
<script id="general" language="javascript">
function foo()
{
alert("aaa");
}
</script>
<title>Test</title>
</head>
<body>
<INPUT id="Button1" type="button" value="JS1"
onclick="JSFileFunction()"></P>
<INPUT id="Button2" type="button" value="JS2" onclick="foo()"></P>
</body>
</HTML>

My ABC.js file:
function JSFileFunction()
{
alert("ABC");
}


PLZ help me.... I'm stuck!!!
 
V

VK

Iddo said:
Hi,
I am having a strange problem...
I have an HTML file which has 2 script tags:
1) <script language="javascript" id="ABC" src="ABC.js" />
2) <script id="general" language="javascript">
function foo()
{
alert("aaa");
}
</script>

I have forgotten the closing tag for the external file (<script>
elements always requires closing tag).

Script element has type "text/javascript" (not language "javascript").

Script elements doesn't have id attribute.

<script type="text/javascript" src="ABC.js"></script>
<script type="text/javascript">
// your code here
</script>
 
J

jan.hancic

Change:
<script language="javascript" id="ABC" src="ABC.js" />

into
<script language="javascript" id="ABC" src="ABC.js"></script>


That solved the problem for me (in Firefox)
 
T

Thomas 'PointedEars' Lahn

Iddo said:
I have an HTML file which has 2 script tags:

There are no "script tags". There are (script) _elements_,
consisting of start and end tag, and optionally content.
1) <script language="javascript" id="ABC" src="ABC.js" />

MUST be at least

<script type="text/javascript" language="javascript"
src="ABC.js"></script>

HTML's SHORTTAG syntax is different from XHTML's. In HTML,

<script ... />

is equivalent to

<script ...>&gt;

First, text content is not allowed directly below the `head' element,
and second, the `script' element is not closed.
2) <script id="general" language="javascript">

Must be at least

<script type="text/javascript" language="javascript">

The `type' attribute is mandatory, and the element has no `id' attribute
(nor would it need one). The `language' attribute is deprecated in HTML
4.01, and can be safely omitted. It MUST be omitted if you declare HTML
4.01 Strict.
[...]
I am trying to call the "foo" function and also functions from the
"ABC.js" file.
when calling the ".js" file

Files cannot be called, they can be executed if they contain executable
code. But this is no file, it is a script resource (that can be saved
as a file). It can be (down)loaded, if that.
- functions are called fine!
however, when calling the "foo" function - I get an error! ("Object
expected")

It would appear that due to forced error-correction of your invalid markup,
the </script> (close) tag of the second `script' element is understood as
the close tag for the first `script' element, and any code in the second
`script' element is ignored. Hence there is no foo() method that can be
called.

Although not required in HTML, element type identifiers and attribute
identifiers should be lowercase always. A DOCTYPE declaration is missing
before this start tag of the `html' element.
<INPUT id="Button1" type="button" value="JS1"
onclick="JSFileFunction()"></P>
<INPUT id="Button2" type="button" value="JS2" onclick="foo()"></P>

It does not seem as if you would need an ID for either button.
There is no <P> open tag, so nothing that needs to be closed with </P>.

PLZ help me.... I'm stuck!!!

It would be best if you understood the basics of Web authoring before you
started with Web programming.


PointedEars
 
J

John G Harris

Thomas 'PointedEars' said:
Iddo wrote:


Although not required in HTML, element type identifiers and attribute
identifiers should be lowercase always.
<snip>

Why? Do you have a technical reason, or are you just being an art
critic?

John
 
T

Thomas 'PointedEars' Lahn

John said:
[...] Thomas 'PointedEars' Lahn [...] writes
Although not required in HTML, element type identifiers and attribute
identifiers should be lowercase always.

Why? Do you have a technical reason, or are you just being an art
critic?

Yes. It compresses better, is less error-prone, and is good to be developed
as a habit when taking more recent markup languages into account.


PointedEars
 
I

Ivan Marsh

Tony a écrit :
Thomas said:
John G Harris wrote:
[...] Thomas 'PointedEars' Lahn [...] writes

Although not required in HTML, element type identifiers and attribute
identifiers should be lowercase always.

Why? Do you have a technical reason, or are you just being an art
critic?

Yes. It compresses better, is less error-prone, and is good to be
developed
as a habit when taking more recent markup languages into account.

Not sure how it would "compress better"

Probably because most the text of a page being lowercase, you may have
better compression with tag names also in lowercase... (wild guess) (and
totally ot).

Huh? In ASCII all characters are seven bit.
 
T

Thomas 'PointedEars' Lahn

Bruno said:
Tony a écrit :
Thomas said:
John G Harris wrote:
[...] Thomas 'PointedEars' Lahn [...] writes
Although not required in HTML, element type identifiers and attribute
identifiers should be lowercase always.
Why? Do you have a technical reason, or are you just being an art
critic?
Yes. It compresses better, is less error-prone, and is good to be
developed as a habit when taking more recent markup languages into
account.
Not sure how it would "compress better"

Probably because most the text of a page being lowercase, you may have
better compression with tag names

and attribute names (but not attribute values, of course)
also in lowercase... (wild guess)

Exactly. Redundancy counts.
(and totally ot).

ACK


PointedEars
 
I

Ivan Marsh

Bruno said:
Tony a écrit :
Thomas 'PointedEars' Lahn wrote:
John G Harris wrote:
[...] Thomas 'PointedEars' Lahn [...] writes
Although not required in HTML, element type identifiers and attribute
identifiers should be lowercase always.
Why? Do you have a technical reason, or are you just being an art
critic?
Yes. It compresses better, is less error-prone, and is good to be
developed as a habit when taking more recent markup languages into
account.
Not sure how it would "compress better"

Probably because most the text of a page being lowercase, you may have
better compression with tag names

and attribute names (but not attribute values, of course)
also in lowercase... (wild guess)

Exactly. Redundancy counts.

What compression utilizing redundancy occurs between the web server and
the browser?
 
B

Bruno Desthuilliers

Tony a écrit :
Thomas said:
John said:
[...] Thomas 'PointedEars' Lahn [...] writes


Although not required in HTML, element type identifiers and attribute
identifiers should be lowercase always.


Why? Do you have a technical reason, or are you just being an art
critic?


Yes. It compresses better, is less error-prone, and is good to be
developed
as a habit when taking more recent markup languages into account.


Not sure how it would "compress better"

Probably because most the text of a page being lowercase, you may have
better compression with tag names also in lowercase... (wild guess) (and
totally ot).
 
V

VK

Ivan said:
Huh? In ASCII all characters are seven bit.

Huh? The US may have some defaults, but not up to the point of using
seven-bit bytes :)

ASCII characters are the conventional 8-bit bytes, but only 7 bits are
used, which brings the total amount of possible combinations to 127
(low part of ASCII table).
 
T

Thomas 'PointedEars' Lahn

VK said:
Huh? The US may have some defaults, but not up to the point of using
seven-bit bytes :)

And even if they had, the statement would be irrelevant regarding data
compression. For it was not argued that a lowercase character required
less bits to be encoded (on the contrary, if ASCII was not the fixed-width
encoding that it is, lowercase characters would require _more_ bits to be
encoded than uppercase characters, because uppercase characters have
_lower_ code points than lowercase characters in ASCII).
ASCII characters are the conventional 8-bit bytes, but only 7 bits are
used,

False. The eighth bit has been (is?) used, too, but not for the character
code.
which brings the total amount of possible combinations to 127
(low part of ASCII table).

False. The number is 2^7 = 128, of course. From 0 to 127 decimal
(7F hexadecimal).

<URL:http://en.wikipedia.org/wiki/ASCII>


PointedEars
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top