DOBON.NET DOBON.NETプログラミング掲示板過去ログ

jsファイル及び、画像ファイルの読み込みについて

環境/言語:[C#、.NET Framework3.5、Windows7、IE8]
分類:[ASP.NET]

2010/10/27(Wed) 16:22:51 編集(投稿者)

現在、ASP.NETでWEBアプリケーションを開発しています。
今回、VS2005→VS2008に移行したところ、WindowsXP(IE7)で開発した場合は正常に動作するのですが、
Windows7(IE8)で開発した場合にエラーとなってしまいます。
以下が、問題点、見解、ソースです。

 <問題点>
  @「PSV_SetTitle」の部分で「オブジェクトを指定してください」のエラーが発生する。
   (下記曽^スのように「DAFMain.js」内に関数は存在します。)
  A@の部分を消し、処理を続行した場合に、「XXXX.gif」「YYYY.gif」が画面上に表示されない。

 <見解>
  Aの現象から、そもそも「DAFMain.js」ファイルを読み込めていないため、「オブジェクトを指定してください」
  のエラーが発生していると思っています。
  しかし、XP(IE7)環境では問題なく動作している理由がわからないのです。
  何か原因がわかる方がおられましたら、教えていただけると助かります。

 <ソース>
--------------------------------【以下、aspxファイル抜粋】--------------------------------
<%@ Page language="c#" Codebehind="DAFLogin.aspx.cs" AutoEventWireup="True" Inherits="XXXXXXXX.LOGIN.frmLogin" %>
<%@ Register TagPrefix="igtxt" Namespace="Infragistics.WebUI.WebDataInput" Assembly="Infragistics35.WebUI.WebDataInput.v10.1, Version=10.1.20101.2072, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>DAFLogin</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<script language="javascript" src="../DAFMain/DAFMain.js"></script>
<script language="javascript" src="DAFLogin.js"></script>
<SCRIPT language="javascript">
<!--
var PS_KBN_OKNG_NG = '<%=PS_KBN_OKNG_NG%>';
var PS_KBN_OKNG_OK = '<%=PS_KBN_OKNG_OK%>';
function onLoadWRMLogin(anbNextPageFlg, anbVisibleFlg)
{
if (anbNextPageFlg == PS_KBN_OKNG_OK)
{
document.charset="UTF-8";
document.Dummy.action = "../DAFMain/DAFMain.aspx";
document.Dummy.target="_self";
document.Dummy.submit();
}

if (anbVisibleFlg == PS_KBN_OKNG_OK)
{
document.frmMain.txtLoingID.focus();
}

}
function PSV_ClearClickd()
{
document.frmMain.txtLoingID.value = "";
document.frmMain.txtPassword.value = "";
document.frmMain.txtLoingID.focus();
}
-->
</SCRIPT>
</HEAD>
<BODY bgColor=#fff5ee
onload="onLoadWRMLogin('<%=pnsNextPageFlg%>', '<%=pnsVisibleFlg%>'); PSV_SetTitle('<%=pnsWinTitle%>');">
<FORM id="frmMain" name="frmMain" method="post" autocomplete="off" runat="server">
<IMG alt="" src="XXXX.gif" id="imgMainLogo" runat="server"><BR>
<IMG alt="" src="YYYY.gif" width="537" id="imgLineLogo" runat="server" style="WIDTH: 537px; HEIGHT: 15px"
height="15">&nbsp;
---------------------------------------------------------------------------------------------

--------------------------------【以下、DAFMain.jsファイル抜粋】--------------------------------

/**********************************************
* 画面タイトル設定
* [関数名]
* function PSV_SetTitle
* [引き数]
* 無し
* [内容]
* 画面タイトルを設定する
**********************************************/
function PSV_SetTitle(ansTitle)
{
window.top.document.title = ansTitle;
}
---------------------------------------------------------------------------------------------

  
お手数ですが、よろしくお願い致します。
■No27489に返信(つねさんの記事)

> @「PSV_SetTitle」の部分で「オブジェクトを指定してください」のエラーが発生する。
> (関数は「DAFMain.js」内に存在します。)
> A@の部分を消し、処理を続行した場合に、「XXXX.gif」「YYYY.gif」が画面上に表示されない。

ソースを拝見しました限りでは。
関数 PSV_SetTitle の呼び出しでエラーが発生すること。
画像 XXXX.gif、YYYY.gif が表示されないこと。
2つの間には関連がないように思います。

DAFMain.js のスクリプトが読み込めているか、確認してみてはいかがでしょうか。
スクリプトの読み込みに、直接関わっているのは、この部分のみですので。
<script language="javascript" src="../DAFMain/DAFMain.js"></script>

以下のような、js ファイル読み込みを確認する最小限のコードを作成するとよいかと思います。
NG となるようでしたら、js ファイルのパスが間違っている可能性があります。

<%@ Page Language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
  <head>
    <title>js load test</title>
    <script language="javascript" src="../DAFMain/DAFMain.js"></script>
  </head>
  <body onload="alert(typeof PSV_SetTitle === 'function' ? 'OK' : 'NG');">
  </body>
</html>
2010/10/28(Thu) 10:03:04 編集(投稿者)

■No27492に返信(もりおさんの記事)

ご回答ありがとうございます。

いただいたソースのようにして、確認しましたところ、やはり"DAFMain.js"が読み込めていないようでした。
そこで、"DAFMain.js"をaspxファイルと同じフォルダに格納し、プロジェクトにも追加して以下のソースの様に変更して実行しました。

<%@ Page Language="c#" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
<title>js load test</title>
<script type="text/javascript" src="DAFMain.js"></script>
</head>
<body onload="alert(typeof PSV_SetTitle === 'function' ? 'OK' : 'NG');">
</body>
</html>

結果はやはり"NG"となってしまいました。
※ちなみに同じく同一フォルダに存在する"DAFLogin.js"も取得できていないようでした。
また、文字コードが関係する可能性もあったので、「charset="Shift-JIS"」「charset="UTF-8"」を付加して実行してみましたが、同じように「NG」となってしまいました。
Windows7(IE8)から何か読み込みの方法や権限の関連で変更などあるのでしょうか?
■No27497に返信(つねさんの記事)

> 結果はやはり"NG"となってしまいました。

あら、ダメでしたか。
うーむ。そうしますと NG となる原因に関しましては、
js ファイルのファイル名が間違っている。
呼び出す関数名が間違っている。
くらいしか思いつきません。

> Windows7(IE8)から何か読み込みの方法や権限の関連で変更などあるのでしょうか?

ないと思います。私の環境では、IE8 でも、こちらの記述でスクリプトファイルを
読み込むことができました。
<script type="text/javascript" src="DAFMain.js"></script>

http から始まる絶対 URL を指定してもダメでしょうか。
<script type="text/javascript" src="http://***/DAFMain.js"></script>
■No27499に返信(もりおさんの記事)

解決しました!
IISの設定「静的コンテンツ」を有効にしたところ、JSファイルも画像ファイルも読み込めるようになりました。
いろいろとありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板