views:

354

answers:

4

Hello!

In my page there is two links, register and login.

The important one now is register. When I click it, it loads a .tpl file using jquery load function. In this tpl file I include a new js file with <script> ofcourse, and it works perfectly in safari, ff, opera and chrome, but of course, Why should it be working in IE?

So my question is, what should I do to make it working in IE? I think if I put the js in the .tpl file that would solve my problem, but if there is a better solution, I'd like to hear it. No this didn't help, so I guess there is no solution : D

Now I tried it with a simple alert, it worked perfectly.

My problem has changed. If there is a $(document).ready in the JS file the IE "ignores" the whole script, but if there isn't it works perfectly. The thing is that i need that document ready. : D

Thanks.

+2  A: 

Make sure that the script tag is not in this form:

<script ... />

IE only accepts:

<script>...</script>
Nissan Fan
I'm using the second one
Tom
It annoys me to no end that you can't use single tag form in IE.
Erik
A: 

IE considers injection of script tags as a security issue. Change the script tag to:

document.write("<scri" + "pt src=...></scri" + "pt>");
Jeff Ober
Didn't help : /
Tom
A: 

Are you sure that your loaded javascript executes properly in IE. Perhaps it have a javascript quirk that is throwing an error and is making it appear as if it's not loading?

To test this out, non-dynamically including the javascript (include it in the page or similar) and set up a break-point in the script code and step through ot make sure it executes all the way through. Firebug would be an excellent tool for this.

I realise this is grasping at straws, but give it a try perhaps?

Evildonald
Firebug would be an excellent tool... if it worked in IE. :-/
Sixten Otto
lol... my bad :)
Evildonald
+2  A: 

If the script is "ignored" if there's a $(document)ready then there may be an error in that block of the script and your IE is set to stop running scripts on error.

Try to simplify your issue a bit to try to pin point it. For example, copy the following code into a brand new html file and try it out (NOTE: you'll need to change the src path to the jquery.js file.)

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    alert('test');
}
</script>
</head>
<body>
</body>
</html>

Does the above work in IE for you or does it get ignored as well (again, after you update the path to the jquery.js file)?

If this works but it doesn't in your scenario, check your page's source in IE for how everything is loaded. The only time I've seen $(document).ready() throw an error is when the jquery.js file is not loaded prior to it or there's a conflict with the $() function...in which case you'll need the noConflict() function.

JamesEggers
You're right the problem is in my function.And it was a *** ','. I love IE.Thanks for your help. : D
Tom