母版页中的 JavaScript asp.net 无法加载

javascript in asp.net masterpage doesn't load

本文关键字:加载 net asp JavaScript 母版页      更新时间:2023-09-26

我在 JScript1 中的 litte alert 函数.js不再工作
了它确实有效,但我无法让它再次工作!!
我做了清理,重建,重新启动电脑等。
我的电脑视窗 10, Microsoft边缘, VS 2010
我怎样才能让它再次工作?
如果 A 复制它正在工作的新项目中的代码,请参阅底部,在这种情况下它包含错误的信息?哦,我找到了解决方案!

我的网站.大师:

<%@ 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>

我的关于.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');
}

在链接样式表下一行下的站点.主中添加:

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

在"关于.aspx"下添加下一行:

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

现在你有一个工作示例
但是在某些时刻它不再起作用了,这怎么可能?

溶液:
VS加载并显示网页后,单击重新加载,我的情况是它可以?!

该问题是由 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 中进行更改时,应更新程序集文件的版本(在项目的属性中)。