1

所以我有以下它在大多数浏览器中都可以正常工作,除了在 IE8 和更旧版本中它只会在您第一次访问页面或当您 ctrl + f5(清除缓存)并查看页面时运行。发生的事情是这个影响的项目在我的页面主布局/模板中,所以当我遍历网站时它不会加载。

例如,我在主页上,单击个人部分希望该项目加载到下一页,但它甚至没有出现。

$(document).ready(function () {

    if (window.document.domain == "developer10.machine") {

        var oScript = document.createElement('script');
        oScript.type = 'text/javascript';
        oScript.src = '/js/uk_converter.js';

        // most browsers
        oScript.onload = function () {
            renderCurrencyConverter('GBP', 'EUR', 1.00);
        }

        // IE
        oScript.onreadystatechange = function () {
            if (this.readyState == 'loaded' && ($.browser.msie && parseInt($.browser.version, 10)))
            {
                renderCurrencyConverter('GBP', 'EUR', 1.00);
            }
        }
        document.body.appendChild(oScript);
    }
});
4

1 回答 1

3

一旦你设置了已经在缓存中的脚本的 src,它就会完成加载。由于您在设置 src 后添加了 onload 处理程序,因此永远不会调用 onload 处理程序。设置处理程序后尝试设置 src。

$(document).ready(function () {

    if (window.document.domain == "developer10.machine") {

        var oScript = document.createElement('script');
        oScript.type = 'text/javascript';

        // most browsers
        oScript.onload = function () {
            renderCurrencyConverter('GBP', 'EUR', 1.00);
        }

        // IE
        oScript.onreadystatechange = function () {
            if (this.readyState == 'loaded' && ($.browser.msie && parseInt($.browser.version, 10)))
            {
                renderCurrencyConverter('GBP', 'EUR', 1.00);
            }
        }

        oScript.src = '/js/uk_converter.js';
        document.body.appendChild(oScript);
    }
});

或尝试 jquery 脚本加载器:

$(document).ready(function () {
    $.getScript("/js/uk_converter.js", function () {
        renderCurrencyConverter('GBP', 'EUR', 1.00);

    });
});
于 2012-07-10T16:40:32.603 回答