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 に答える