2013-02-16 77 views
0

因此,我有一個靜態HTML頁面,我無法編輯,我需要將jQuery添加到它,然後在文檔準備好後執行一些div操作(高度)。我找到了this post,它描述瞭如何將它插入頁面,這很好。我將其添加到我的JavaScript文件中,並將其插入到頁面中。問題是我需要在同一頁面上對$(document).ready()執行一些操作,但它說$是未定義的。將javascript添加到HTML文件並使用文檔準備

我想要做的是這樣的:

var script = document.createElement('script'); 
script.src = 'http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js'; 
script.type = 'text/javascript'; 
document.getElementsByTagName('head')[0].appendChild(script); 

$(document).ready(function() { 
    // Resize my div's to the browser window 
}); 

但我似乎無法得到它的工作。這可能嗎?怎麼樣?

+0

(OFFT)1.2.6是有點老了,是不是? – 2013-02-16 06:57:43

+0

您將不得不等待腳本在使用jQuery之前加載。你可以通過簡單的谷歌搜索找到如何做到這一點。 – jfriend00 2013-02-16 07:03:31

+0

@roXon是的,它是:)我剛從其他帖子複製代碼。我正在使用最新版本。 – Nicros 2013-02-16 07:15:17

回答

2
var script = document.createElement('script'); 
script.src = 'http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js'; 
script.type = 'text/javascript'; 
script.onload = resize;     //most browsers 
script.onreadystatechange = function() { //ie 
    if (this.readyState == 'complete') { 
     resize(); 
    } 
} 

document.getElementsByTagName('head')[0].appendChild(script); 

function resize() { 
    //code goes here 
} 
+0

我會試試這個,謝謝! – Nicros 2013-02-16 07:20:44

0

這是由於JS jQuery文件加載之前準備好的事件觸發。這是一個很好的教程,介紹如何做到這一點。

http://www.ejeliot.com/blog/109

這不會幫助你的頁面的性能雖然加載您的jQuery這樣。您應該儘量減少您的JS,並儘可能少地使用請求以獲得最佳的用戶體驗。

而且,你不需要寫

$(document).ready(function() { }); 

你可以只寫

$(function() { }); 
+0

真棒我會看看這個。在這個特定的情況下,頁面性能並不是真正的問題,我只需要使這個功能正常工作。 – Nicros 2013-02-16 07:18:58

+0

@ jfriend00但他有問題的$不可用,對不對? – 2013-02-16 07:22:22

相關問題