2013-02-16 100 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

相关问题