Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#595 closed defect (fixed)

Line:289 Unexpected call to method or property access

Reported by: saeven@… Owned by: sjmiles
Priority: blocker Milestone:
Component: Core Version: 0.3
Keywords: Cc:
Blocked By: Blocking:

Description

I get this error when using the dojo nightly build, which I'd switched to to attempt to solve a cryptic error with the 2.2 build.

Line:289 Unexpected call to method or property access script: hostenv_browser.js

The affected line is arrowed below:

function dj_addNodeEvtHdlr (node, evtName, fp, capture){

var oldHandler = node["on"+evtName]
function(){};

node["on"+evtName] = function(){

fp.apply(node, arguments); ---> oldHandler.apply(node, arguments);

} return true;

}

Change History (5)

comment:1 Changed 13 years ago by saeven@…

I've pinpointed the root of the problem, this line:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >

Causes dojo to foul up. Unfortunately, this application indeed requires that it be able to display utf8 characters. A fix or confirmation is most definitely appreciated.

This code will reproduce the issue, where dojo was in ext/

*8

<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.0 TransitionalEN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html> <head>

<script src="ext/dojo/dojo.js" type="text/javascript"></script> <link href="templates/system/includes/stylesheet.css" rel="stylesheet" type="text/css"></link> <title>Auracle Support Engine</title> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >

</head> <body> Hello </body> </html>

comment:2 Changed 13 years ago by Tom Trenka

Can you tell us what platform this is on? Sounds like an IE/Win issue but confirmation would be good.

comment:3 Changed 13 years ago by anonymous

Owner: changed from anonymous to sjmiles

comment:4 Changed 13 years ago by sjmiles

Resolution: fixed
Status: newclosed

I confirmed this very strange problem on IE. Note that it only happens when there is no running instance of IE when the page is opened. In that case, the dojo.js file is actually loaded twice, causing all sorts of odd problems.

It appears as though the meta tag is causing IE to reload some parts of the document.

The window context is stable; so it's possible to trap this problem by placing a sentinel value in dojo.js and cancelling operations if the script has already been executed (i.e. the sentinel is detected).

However, moving the <meta> tag above the Dojo <script> tag appears to be the simplest solution. I can't think of any case that would disallow having the <meta> tag above the <script> tag, so at this point I say that reordering the tags is the official solution.

comment:5 Changed 12 years ago by (none)

Milestone: 0.3release

Milestone 0.3release deleted

Note: See TracTickets for help on using tickets.