3

我开始在 Opera 中学习 UserJS。为了测试,我尝试连接 jQuery 库和 jQuery UI,但没有成功。这是代码:

(function( ) {
    var headID = document.getElementsByTagName("head")[0];         
    var newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.id = 'myjQuery';
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
    headID.appendChild(newScript);

    newScript = document.createElement('script');
    newScript.type = 'text/javascript';
    newScript.id = 'myjQuery2';
    newScript.src = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js';
    headID.appendChild(newScript);

    alert('first alert');
    window.addEventListener('load', function (e)  {
        $('body').html('test page');
    }, false);
})( );

第一次警报工作。两个库连接到页面,但 jQuery 代码不起作用。怎么了?

PS。我收到一个错误:ReferenceError:未定义的变量:$

4

1 回答 1

2

您的脚本是异步加载的,并且在页面加载时可能还没有准备好,因此 $/jQuery 还不存在于窗口范围内。

由于您使用的是 jQuery,您可以轻松地使用它的 $(document).ready() 或只是 $(),因为它在页面加载后调用时也可以工作。

这是一个简单的 script.onload 处理程序的小提琴,一旦两个脚本都可用,就会触发 jQuery 的 ready():http: //jsfiddle.net/qaYJF/

于 2012-01-14T12:41:25.987 回答