2016-04-23 2 views
0

Моя функция уведомления litte в JScript1.js больше не работает
Это действительно сработало, но я не могу заставить его работать снова !!!
Я очистил и восстановил, перезагрузил компьютер и т. Д.
Мой компьютер Windows 10, Microsoft Edge, VS 2010
Как я могу заставить его работать снова?
Если копия кода в новом проекте работает, см. Нижнюю часть, и в этом случае она хранит неверную информацию? О, я нашел решение!javascript в asp.net masterpage не загружается

Мой 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
Добавить новый элемент JaScript файла имя JScript1.js код
Put в JScript1.js

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

Добавить на сайт. Мастер по ссылке-stylesheet next li пе:

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

Добавить следующую строку в About.aspx под приблизительно:

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

Теперь у вас есть рабочий пример
Но в какой-то момент он больше не работает, как это возможно?

Решение:
После нагрузки VS и показать веб-страницу, нажмите на перезагрузку, я моем случае это работает!?!

+0

Можете ли вы проверить одно, а не 'OnClientClick =" notify() "', написать инструкцию оповещения и проверить, будет ли она звонить или нет? –

+0

О, я подозреваю, что он назвал эту функцию, но сразу же будет отбрасывать эту страницу при нажатии кнопки. Поэтому просто добавьте return false, чтобы отменить событие нажатия кнопки, например 'OnClientClick =" notify(); return false "' –

ответ

0

Проблема связана с тем, что файл JScript1.js хранится в кеше браузера. Каждый раз, когда вы запускаете приложение, вместо текущей версии используется кешированная версия файла. Например, если вы измените код:

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

и запустить приложение снова, вы не будете видеть это новое сообщение, если вы очистите кэш браузера (или, если браузер настроен, чтобы очистить его автоматически).

Вы можете заставить браузер загрузить новый файл Javascript, добавляя другую строку запроса на имя файла каждый раз, когда приложение запускается:

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

В реальных приложениях, предпочтительно, чтобы заставить браузер для загрузки JScript1.js только тогда, когда его содержимое было изменено. Это можно сделать, добавив версию файла в имя файла (вместо количества отсчетов по времени). Объявление сценария линия может выглядеть следующим образом:

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

, который будет использовать свойство AppVersion, определенное в фоновом коде:

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

Версию файл сборка должен затем быть обновлена ​​(в свойствах проект), когда в JScript1.js сделано изменение.