1

asp.net Web アプリケーションのローダーを非表示および表示するスクリプトを作成しました。スクリプトは、インラインに配置するとうまく機能します。スクリプトを外部ファイルに抽出しようとしたところ、次のエラーが発生しました。

エラー:プロパティ 'Pausing' の値が null または未定義であり、Function オブジェクトではありません

エラーを調べてみましたが、問題の解決策を見つけることができませんでした。私はasp.netを初めて使用するので、正しい質問を検索する方法がわからない可能性があります。

動作する私のインラインコードは次のとおりです。

<script type="text/javascript">

    function Pausing() {
        window.setTimeout(ShowLoader, 1);
    }

    function ShowLoader() {
        if ((typeof Page_IsValid === 'undefined') || 
            (Page_IsValid != null && Page_IsValid)) {
            var i = document.getElementById("loader");
            var img = document.getElementById("img");
            i.style.display = "block";
            setTimeout("document.images['img'].src=document.images['img'].src", 10);
            Endpausing();
        }
    }

    function HideLoader() {
        var i = document.getElementById("loader");
        i.style.display = "none";
    }

    function Endpausing() {
        window.setTimeout(HideLoader, 4000);
    }
</script>

イベント呼び出しは、以下の asp:button コントロールにアタッチされています。

<asp:Button ID="btnGetReport" runat="server" OnClick="btnGetReport_Click" OnClientClick="Pausing();" />

インラインスクリプトを削除し、これに置き換えました...

<script type="text/javascript" src="../../Scripts/Loader.js"></script>

スクリプトを外部ファイルに追加しました:

window.onload = initAll;

function initAll() {

    function Pausing() {
        window.setTimeout(ShowLoader, 1);
    }

    function ShowLoader() {
        if ((typeof Page_IsValid === 'undefined') ||      // asp page has no validator
                (Page_IsValid != null && Page_IsValid)) {
            var i = document.getElementById("loader");
            var img = document.getElementById("img");
            i.style.display = "block";
            setTimeout("document.images['img'].src=document.images['img'].src", 10);
            Endpausing();
        }
    }

    function HideLoader() {
        var i = document.getElementById("loader");
        i.style.display = "none";
    }

    function Endpausing() {
        window.setTimeout(HideLoader, 4000);
    }
}

その後、前述のエラーが表示されます。

どんな助けでも大歓迎です!

4

2 に答える 2

5

常に ResolveUrl を使用して、このようにスクリプト ファイルを呼び出します

スクリプトがルート パスの Script フォルダーにあり、ファイル名が MyScriptFile.js であると仮定します。

 <script type="text/javascript" src="<%= ResolveUrl ("~/Scripts/MyScriptFile.js") %>"></script>  

EDIT : 必要に応じて ResolveUrl または ResolveClientUrl を使用できます

ResolveUrl はルートに相対的な URL を作成し、ResolveClientUrl は現在のページに相対的な URL を作成します。

于 2012-07-02T16:14:03.153 に答える
0

あなたの質問に基づいて: asp.netで外部javascriptファイルを使用する方法

<script type="text/javascript" src="http://www.xyz.com/test.js"></script>
于 2012-07-02T16:07:24.253 に答える