0

「ObjectExpected」と表示されているため、javascript関数を呼び出すことができません。私はasp.netを使用していますが、これはいくつかのユーザーコントロールを備えた標準のaspxページで使用されています。CookieControlと呼ばれるユーザーコントロールの1つが、document.ready.ieでjavascriptメソッドsetandCheckCookie()を呼び出します。

$(document).ready(function() {
         setandCheckCookie();
)};

aspxページのheadセクションで、コントロールを追加する前にjavascriptファイルを参照しています。

<script src="CookiesControl/js/Cookie.js" type="text/javascript"></script>
<uc2:Cookie ID="Cookie1" runat="server" />

ユーザーコントロール自体にスクリプト参照を追加しようとしましたが、aspxページに移動すると、オブジェクトの予期されるエラーが発生します。

コントロールまたはjsファイルはどちらもWebサイトの他の場所で使用されており、正常に機能しているとは思いませんが、firebugとIEデバッガーでは表示されないため、jsファイルが参照されないようにしています。参照されるjsファイル。

パスが正しくない可能性がありますが、ソリューションエクスプローラーからスクリプトをドラッグしましたが、VisualStudioもパスについて不平を言っていません。

だから私の質問は:私のjavascriptファイルが参照されるのを潜在的に妨げる可能性があるものです。

4

1 に答える 1

1

Visual Studioがパスについて不平を言っているかどうかは、ブラウザーに何が表示されるかを常に示しているわけではありません。スクリプトが正常に参照されているかどうかを確認するには、ブラウザでスクリプトファイルを取得してみてください。たとえば、ページがにhttp://yoursite/yourpage.aspxあり、htmlコードのスクリプト参照(View SourceVisual Studioに表示されるものではなく、によって)がfolder/scriptFile.jsである場合、このアドレスhttp://yoursite/folder/scriptFile.jsを入力して、ファイルを取得するかどうかを確認します。そうでない場合は、正常に参照されません。yoursiteこのような問題を解決するには、次のようにフルパスを後に置きます。

<script src="/ScriptVirtualFolder/CookiesControl/js/Cookie.js" type="text/javascript"></script>

ScriptVirtualFolderサイトのルートフォルダにあり、仮想フォルダであるということは、このパスのブラウザからアクセスできることを意味します。また、asp.netを使用して、~記号とを使用してパスを解決できますrunat='server'。例えば:

<script src="~/ScriptServerFolder/CookiesControl/js/Cookie.js" type="text/javascript" runat="server"></script>
于 2012-08-06T16:20:30.967 に答える