Meteor.js: <script> tag doesn't work inside <body>

javascript, meteor

Solution

This question is still relevant in the current version of Meteor (version 0.5.4) so I wanted to describe how to include script at the end of the body.

To execute javascript at the end of the body, register a Handlebars helper and put the relevant code there, like this:

In client.html:

<body>
  {{renderPage}}

  {{afterBody}}
</body>

...

In client.js:

if (typeof Handlebars !== 'undefined') {
  Handlebars.registerHelper('afterBody', function(name, options) {
    $('body').append('AFTER BODY');
  });
}

(For a great description of why this is required, see Rahul's answer to a similar question here: https://stackoverflow.com/a/14002991/219238 )

Problem

A simple script tag inside the body tag doesn't seem to work. The alert doesn't get triggered in the code below: ``` <body> <script type="text/javascript"> alert('Hello'); </script> {{>main}} </body> ``` Any idea why? Edit: Just tried it with a fresh meteor app, no alert tag still: ``` <head> <title>test</title> </head> <body> <script type="text/javascript"> alert('Hello'); </script> {{> hello}} </body> <template name="hello"> <h1>Hello World!</h1> {{greeting}} <input type="button" value="Click" /> </template> ``` Weird thing is when I copy paste the source of the html, made a new html page, and the alert will work. Edit3: I deployed this app here: http://alert-in-body-test.meteor.com/ Do you get an alert box?

Original source

Related problems