Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE8在第一次执行后未运行javascript_Javascript_Jquery_Internet Explorer_Internet Explorer 8 - Fatal编程技术网

IE8在第一次执行后未运行javascript

IE8在第一次执行后未运行javascript,javascript,jquery,internet-explorer,internet-explorer-8,Javascript,Jquery,Internet Explorer,Internet Explorer 8,因此,我有以下几点:它在大多数浏览器中工作得非常好,除了IE8和更旧的浏览器之外。它只在您第一次访问页面或ctrl+f5(清除缓存)并查看页面时运行。所发生的事情是,此影响的项目位于我的页面主布局/模板中,因此当我遍历站点时,它不会加载 例如,我在主页上,我点击进入个人部分,希望该项目加载到下一页,但它甚至没有出现 $(document).ready(function () { if (window.document.domain == "developer10.machine") {

因此,我有以下几点:它在大多数浏览器中工作得非常好,除了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);
    }
});

一旦您设置了脚本的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);

    });
});

你能举个例子吗?嗯,是的,我只是想确定我在做你脑子里想的事情。@Anicho也许可以尝试使用JQuery的脚本加载器,它允许你为脚本成功加载并跨浏览器工作时设置处理程序。