$(document).ready doesn't work in IE

2019-06-13 01:02发布

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.

4条回答
可以哭但决不认输i
2楼-- · 2019-06-13 01:50

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?

查看更多
家丑人穷心不美
3楼-- · 2019-06-13 01:55

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

document.write("<scri" + "pt src=...></scri" + "pt>");
查看更多
聊天终结者
4楼-- · 2019-06-13 01:56

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.

查看更多
不美不萌又怎样
5楼-- · 2019-06-13 01:57

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

<script ... />

IE only accepts:

<script>...</script>
查看更多
登录 后发表回答