Dawid
Dawid

Reputation: 593

Firefox incompatibility?

http://ahmedstudio.za.pl/firefoxerror/

It works in chrome, opera but doesn't get along with Firefox. The whole javascript thing is not applying.

This is directly in my javascript.js:

window.onload = function() {

        todo("body", 50);
        alert("alert!");

        setTimeout(function () {
            todo("body", 0);

        }, 1000)

}

function todo(element, size) {
     //blahblah
 }

Upvotes: 0

Views: 67

Answers (3)

brk
brk

Reputation: 50291

This runs fine in me. I even tried to create a dummy page with this snippet but could not replicate it.Here is snippet.Since the snippet you shared does not contain jquery , i opt to use same code .

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>

</head>
<body>
<script>
    window.onload = function(){
            _todo({
                a:'body',
                b:50,
                alertFrom:'window.onload'
            });
        setTimeout(function(){
             _todo({
                a:'body',
                b:0,
                alertFrom:'setTimeOut'
                  });   
            },1000);
        };

        function _todo(options){
            var a = options.a;
            var b = options.b;
            var c=options.alertFrom
             alert(c +" "+a +" "+b);
            };
 </script>
</body>
</html>

Also note that there is a importance of semicolon after a function. Here are couple of snapshots Alerting on load

Alerting after 1 sec

Upvotes: 0

&#193;lvaro Gonz&#225;lez
&#193;lvaro Gonz&#225;lez

Reputation: 146450

Even if it doesn't actually solve your problem I'd like to share my findings about replacing event handlers with invalid function calls. I've composed this little fiddle:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
  <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
  <script>
    jQuery(function(){
      $("body").on("load", function(){
        $(this).append("Should not run")
      });
    });
  </script>
</head>
<body onload="doesNotExist()">

</body>
</html>

Firefox, Explorer and Edge actually replace the <body> event handler. However, Chrome ignores the onload="doesNotExist()" and execute previous handler.

In the land of tag soup it's hard to decide which workaround is the correct one but it's definitively a bug that could explain your symptoms.

Upvotes: 1

Dawid
Dawid

Reputation: 593

function load() {
        //do stuff
}

and the appropriate

<body onload="load()"> </body>

Upvotes: 0

Related Questions