2016-04-23 6 views
0

JScript1.jsのリットルアラート機能がもう動作しません
これはうまくいきましたが、再び動作させることはできません!
私はきれいにして再構築し、PCを再起動しました。
私のPC Windows 10、Microsoft Edge、VS 2010
どうすればいいですか?
新しいプロジェクトのコードをコピーしている場合、下部を参照してください。間違った情報が残っていますか? 私は解決策を見つけました!asp.net masterpageのjavascriptが読み込まれない

マイSite.Master:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebJavascriptTest.SiteMaster" %> 

<!DOCTYPE etc etc..."> 
<head runat="server"> 
<script type="text/javascript" src="JScript1.js"></script> 

マイAbout.aspx

-<%@ Page Title="About Us" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" 
    CodeBehind="About.aspx.cs" Inherits="WebJavascriptTest.About" %> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <h2> 
     Javascript in file 
    </h2> 
    <asp:Button ID="B1" runat="server" Text="Button" OnClientClick="notify()"/

マイJScript1.js

function notify() { 
    alert('notify test'); 
} 

私の作業WebJava.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="WebJava.aspx.cs" Inherits="WebJavascriptTest.WebJava" %> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
<script type="text/javascript" language="javascript"> 
    function Func() { 
     alert("hello!") 
    } 
</script> 
    <h2> 
     Java Intern 
    </h2> 
    <asp:Button ID="B1" runat="server" Text="Button" OnClientClick="Func()" /> 

同じテストプロジェクト は、新しいプロジェクト
ASP.NET Webアプリケーション
[新しい項目の追加JaScriptファイル名JScript1.js
入れコードを追加します。確認するにはJScript1.js

function notify() { 
    alert('notify test'); 
} 

リンクスタイルシートの下に追加li NE:

<script language="javascript" type="text/javascript" src="JScript1.js"></script> 

約下About.aspxに次の行を追加します。今すぐ

<asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="notify()" /><br /> 

お持ち作業例
しかし、それはもう動作しないいくつかの時点で、どのように可能ということでしょうか?

ソリューション:VS負荷後
やWebページを表示し、リロードをクリックして、私私の場合、それは働いています!?!

+0

'OnClientClick =" notify() "の代わりに1つのことをチェックして、警告文を書き、それが呼び出されるかどうかを確認できますか? –

+0

ああ、それはその関数を呼び出したと思われるが、ボタンをクリックすると直ちにそのページをポストバックする。つまり、falseを返すだけで、ボタンのクリックイベントをキャンセルすることができます。例えば、OnClientClick = "notify(); false"を返します。 –

答えて

0

この問題は、JScript1.jsファイルがブラウザのキャッシュに格納されていることが原因です。アプリケーションを実行するたびに、キャッシュされたバージョンのファイルが現在のバージョンの代わりに使用されます。たとえば、あなたがのためにコードを変更する場合:ブラウザのキャッシュをクリアしない限り、(または、ブラウザが自動的にそれをクリアするために設定されている場合)

function notify() { 
    alert('Notify 2'); 
} 

て、もう一度アプリケーションを実行するには、この新しいメッセージは表示されません。あなたは、ファイル名に別のクエリ文字列を追加することによって、新しいJavaScriptファイルをロードするようにブラウザを強制することができ

たびに、アプリケーションが起動されます。実際のアプリケーションで

<script type="text/javascript" src="JScript1.js?<%# DateTime.Now.Ticks.ToString() %>"></script> 

を、ブラウザを強制することが好ましいです。コンテンツが変更された場合にのみJScript1.jsをダウンロードします。これは、(タイムティックカウントの代わりに)ファイルバージョンにファイルバージョンを付加することによって行うことができます。スクリプト宣言行は次のようになります。その後のプロパティで(更新すべきアセンブリファイルのバージョン

public string AppVersion 
{ 
    get 
    { 
     return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); 
    } 
} 

:コードビハインドで定義されているのappversionプロパティを使用します

<script type="text/javascript" src="JScript1.js?version=<%# AppVersion %>"></script> 

をプロジェクト)をJScript1.jsで変更したときに発生します。

関連する問題