当前位置:编程学习 > C#/ASP.NET >>

到底如何才是在页面中正确嵌入js文件的方法?

我杂页面中刁调用一个js日期控件
在页面头部 这样调用
方式1
  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="baobiao_sx.aspx.cs" Inherits="baobiao_sx" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<script src="baobiao/js/CalendarSelector.js"></script>
方式2
 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="xsdd.aspx.cs" Inherits="xsgl_xsdd" %>

<!--#include file="../JS/MyCalendar.js"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 这两中方式到底在 asp.net中选择的哪一个呢。但是这两个有时候其中一个是没作用的,真的郁闷啊。。。 --------------------编程问答-------------------- <script src="baobiao/js/CalendarSelector.js"  language="javascript"> </script > 
--------------------编程问答-------------------- <script src="baobiao/js/CalendarSelector.js" > </script > 常用些 --------------------编程问答-------------------- 使用ClientScriptManager类在后台加入js代码:
1) RegisterClientScriptBlock方法:将js区块添加到页面顶端,你可以以字符串形式创建这些js代码,然后将它传递给添加网页的方法。其对应的包含方法IsClientScriptBlockRegistered()

           使用方法如下:

          //动态创建js文件
        string info = "";
        info += "function showName(UserName)";
        info += "{alert('你的名字是:'+UserName);}";

        // 判断myName是否已经被注册
        if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName"))
        { 
          //动态注册js
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info, true);
        
        }

        注意:可以查看一下生成页面的代码究竟怎样的?

      2)RegisterClientScriptInclude方法:通过外部添加引用js脚本。其对应的包含方法IsClientScriptIncludeRegistered()

         假如有一段这样的info.js脚本,如下所示:

                 function  showCity(City){

                     alert("我爱我的:"+City);

                          }

       引用它的例子,如下:

         //动态注册info.js的javascript文件
        //判断是否已被注册
        if (!ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "myMessage")) 
        {

            //若没有被注册,刚将Info.js动态注册
            Page.ClientScript.RegisterClientScriptInclude("myMessage", "js/info.js");
                
          
        }

      注意一下每一个方法的参数就可以了。

  3)RegisterStartupScript方法:将js区块添加当网页完成加载,但是在引发网页的onload事件之前,就会执行。其对应的包含方法IsStartupScriptRegistered。

         使用它的例子如下:

        string info = "<script language=\"javascript\">alert(\"Hello  DotNet!\")</script>";
        if (!Page.ClientScript.IsStartupScriptRegistered("welcome"))
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "welcome", info);
        
        }

 4)RegisterOnSubmitStatement方法:添加执行以响应网页onsubmit事件的js。其对应的包含方法IsOnSubmitStatementRegistered。

             使用它的例子如下:

        string info = "return confirm('你确认删除?');";
        if (!Page.ClientScript.IsOnSubmitStatementRegistered(this.GetType(), "myPage"))
        {
            Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "myPage", info);    

        }   

      注意一下这里不用另外加<script>标签,因为系统已经帮你生成好了。
--------------------编程问答-------------------- 补充一下,你完全可以写一个静态的通用方法在页面后台中加入所需的JS文件,在设计用户自定义控件时很有效,可以避免js代码的重复出现~ --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- up --------------------编程问答-------------------- <script src="baobiao/js/CalendarSelector.js"  language="javascript"> </script > 在母板中没有作用 --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- 真的假的? --------------------编程问答-------------------- 从来没有这样用过  
<!--#include file="../JS/MyCalendar.js"--> 
--------------------编程问答-------------------- <script src=""></script>这种是引用外部js文件
<!--#include file="" -->这种是直接将js文件写到页面中的一种ssi技术。
两种方法都可以,楼主可以自己实验一下,右键查看页面源文件就能看出来不同。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,