Welcome to WebmasterWorld Guest from 54.145.208.64

Forum Moderators: open

Message Too Old, No Replies

Problem with Opera and external Javascript sheet

   
7:06 pm on Jan 17, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Is there a problem with using external Javascript scripts in Opera?

I use the following code to link from an XHTML 1.0. page to an external script:-

<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script src="../scripts-lib/script.js" language="JavaScript" type="text/javascript"></script>

On the same page I call a function:-

<a href="javascript:myfunction()">blahblah</a>

All standard stuff and wirks fine in IE6 and NN6. But Opera 6.05 always returns an error alert.

name: ReferenceError
message: Reference to undefined variable: No such variable 'myfunction'

If I put the script in the page head, then it finds the function OK.

I have tried calling the function by onClick but that doesn't work either.

Is there anything I have to do for external scripts to work in Opera?

Thanks in advance.

10:26 pm on Jan 17, 2003 (gmt 0)

WebmasterWorld Senior Member tedster is a WebmasterWorld Top Contributor of All Time 10+ Year Member



This is a very curious problem. Have you tried using an absolute path to the .js file?
12:11 am on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Hi tedster,

Yes, I tried it just now. But it made no difference.

5:28 am on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member tedster is a WebmasterWorld Top Contributor of All Time 10+ Year Member



Hmmm... I just searched the Opera knowledge base and Google and found nothing about a bug. Let's get down to basics.

Version
Platform
HTML and CSS validates

1:15 pm on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Hi tedster,

Opera Version 6.05
Build 1140
Platform Win32
System Windows 2000
validated XHTML 1.0 transitional and CSS2

Actually the link is on the site in my profile. Top left labelled "Swap bar". It would be interesting to see if anybody else has the same problem, or if it's something to do with my Opera installation.

Harry

4:37 pm on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member drdoc is a WebmasterWorld Top Contributor of All Time 10+ Year Member



Opera is very picky when it comes to tag locations. Is the <script> tag located within the <head></head> section?

I'm using external scripts all the time, and they work .. So it must be something else. Not that it should matter in XHTML 1.0, as long as you're not using Strict, but have you tried omitting language="Javascript" .. You know it's not necessary?

4:41 pm on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member drdoc is a WebmasterWorld Top Contributor of All Time 10+ Year Member



Just looked at the source of your site ..
Tried moving the script tag down?
I don't see why it wouldn't work .. :(
5:34 pm on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Problem solved. It's appears to be a bug.

If the name of the js file includes the word "script" Opera does not load the file. If I change the name, then Opera loads the file.

Presumably Opera gets confused if another word "script" appears between the <script> tag and </script>. It doesn't mind "scripts" or "scriptanything", but fails on the exact match.

The js file url was "domain/scripts-js/lib-script.js". It is now "domain/scripts-js/lib-standard.js", and Opera loads it.

Of course I still have a second problem, because now Opera is objecting to "innerHTML", but at least its no longer giving those misleading messages. :)

Many thanks for all your help.

Harry

5:46 pm on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member drdoc is a WebmasterWorld Top Contributor of All Time 10+ Year Member



You might find this link useful then:
[opera.com...]
5:52 pm on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



You might find this link useful then:
[opera.com...]

Thanks DrDoc but I've already been there. "innerHTML" is not supported by Opera. There's a thread about it here which suggests using the DOM method, but doesn't actually provide any example code. So I'll have to do some digging.

6:04 pm on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member drdoc is a WebmasterWorld Top Contributor of All Time 10+ Year Member



Opera 7 will support it though :)
[opera.com...]
6:13 pm on Jan 18, 2003 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Yes! Dare I say about time?

I'm afraid the only opera I like comes with singing. :)