簡體   English   中英

$(document).ready在IE中不起作用

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

在我的頁面中,有兩個鏈接,注冊和登錄。

現在重要的是寄存器。 當我單擊它時,它將使用jquery加載功能加載一個.tpl文件。 在此tpl文件中,我包括一個帶有<script>的新js文件,它在safari,ff,opera和chrome中均能完美運行,但是,當然,為什么要在IE中運行?

所以我的問題是,我應該怎么做才能使其在IE中工作? 我想如果將js放在可以解決我的問題的.tpl文件中,但是如果有更好的解決方案,我想聽聽。 不,這沒有幫助,所以我想沒有解決方案:D

現在,我嘗試了一個簡單的警報,它運行良好。

我的問題變了。 如果JS文件中有$(document).ready ,則IE會“忽略”整個腳本,但是如果沒有,它會完美運行。 問題是我需要准備好該文件。 :D

謝謝。

確保腳本標記不是這種形式:

<script ... />

IE僅接受:

<script>...</script>

如果准備好$(document)的腳本被“忽略”,則該腳本塊中可能存在錯誤,並且您的IE設置為在錯誤時停止運行腳本。

嘗試簡化您的問題,以找出問題的正確之處。 例如,將以下代碼復制到一個全新的html文件中並嘗試一下(注意:您需要將src路徑更改為jquery.js文件。)

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

上面的代碼在IE中為您工作還是被忽略(同樣,在更新jquery.js文件的路徑之后)?

如果此方法有效,但在您的情況下不可行,請在IE中檢查頁面的源,以了解如何加載所有內容。 我唯一見過的$(document).ready()拋出錯誤是當jquery.js文件沒有在其之前加載或與$()函數發生沖突時...在這種情況下,您會需要noConflict()函數。

IE認為注入腳本標簽是一個安全問題。 將腳本標記更改為:

document.write("<scri" + "pt src=...></scri" + "pt>");

您確定已加載的javascript在IE中正確執行。 也許它有一個javascript錯誤,會引發錯誤並使它看起來好像沒有加載?

要進行測試,請非動態地包含javascript(將其包含在頁面或類似內容中)並在腳本代碼中設置斷點,並逐步執行ot以確保其始終執行。 Firebug將是一個很好的工具。

我意識到這很麻煩,但是可以嘗試一下嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM