账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    动态加载JavaScript之后再运行代码的问题
    31
    0

    在某个页面需要动态加载 jQuery,等到 jQuery 加载完成后再执行后续代码。但是我不想把后续代码放到 ajax 请求的回调函数里,因为后续代码有几千行,而且都是顶层的,我不希望在它们外部加上一层嵌套。求解该如何处理?

    if (typeof jQuery === 'undefined') {    fetch('https://code.jquery.com/jquery-2.0.3.min.js', {
                method: 'get'
            })
            .then(function (response) {
                response.text()
                    .then(function (data) {
                        let element = document.createElement('script');
                        element.setAttribute('type', 'text/javascript');
                        element.innerHTML = data;
                        document.head.appendChild(element);
                        console.log(typeof jQuery);
                        // 检查 typeof jQuery 为 function 之后再执行外部的代码。
                    });
            });
    }
    
    // 外部代码,如:
    console.log('jquery loaded');

    ajax 请求可以不用 fetch,但是需要用异步。也可以改成设置 script 的 src 的方式来加载 jQuery。主要是不让后面的代码再加一层嵌套。可能也算是强迫症吧,求教~

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 花下我独眠 普通会员 1楼

      动态加载JavaScript代码后,重新运行代码可能会导致一些问题,如错误处理和错误跟踪。以下是一些可能的解决方案:

      1. 使用事件处理程序:在JavaScript代码中,可以使用addEventListener()方法添加事件处理程序,当JavaScript代码被执行时,事件处理程序会执行。这可以帮助你更好地处理错误,并记录错误。

      javascript document.getElementById('myDiv').addEventListener('click', function() { // your code here });

      1. 使用try/catch块:在JavaScript代码中,可以使用try/catch块来捕获和处理可能发生的错误。这样,即使错误发生,也不会导致整个脚本崩溃。

      javascript try { // your code here } catch (error) { // handle error }

      1. 使用setTimeout或setInterval:你可以使用setTimeout或setInterval来在特定时间执行JavaScript代码,这样可以确保你的代码在浏览器有足够的时间运行。

      javascript setTimeout(function() { // your code here }, 1000); // 1秒后执行

      1. 使用浏览器的开发者工具:浏览器的开发者工具可以让你查看代码在运行时的错误信息。这可以帮助你更快地找到和解决问题。

      请注意,以上解决方案可能会根据你的具体需求和环境有所不同。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部