我最近在做一个网站,
希望用户在访问AAA.aspx页面的时候,得到的页面是一个AAA.js文件格式。也就是说AAA.aspx从IE查看源代码的时候看到的是一个js的文件格式。。里面包括很多的js 设置请问如何才能做到。。我看过很多方法都是用response.write 输出。。
但是这种方法只能一句一句的输出。。、
又没有办法输出一个复杂的JS文件格式。。并且又可以通过读取URL 的参数 运算以后在写回前面的js代码里。

解决方案 »

  1.   

    string +=string  Page.RegisterStartupScript("",string)
      

  2.   

    if(user=="aaa")
         Response.Write("<script language='javascript' src='aaa.js'></script>");
      

  3.   

    最简单的方法就是在page_load里面这样写
    Response.Clear();
    Response.Write(javascript语句)
    Response.End();然后在其他需要调用的页面使用
    <script language='javascript' src='aaa.aspx'></script>
      

  4.   

    Page.ClientScript.RegisterClientScriptBlock(GetType(), "Method()", jsString);
      

  5.   

    呵<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PrintAd.aspx.cs" Inherits="PrintAd" %>
    var adCode="<%=AdCode%>";
    var outPutStr="";
    if(adCode=="")
    {
     outPutStr="广告加载出错!";
     document.write(outPutStr);
     
    }
    else
    {
     var numSplit=adCode.lastIndexOf(".")+1;
     var adType=adCode.substring(numSplit);
     switch(adType.toLowerCase())
     {
      case "gif":
       outPutStr="<img src=\""+adCode+"\"/>";
      break;
      case "jpg":
       outPutStr="<img src=\""+adCode+"\"/>";
      break;
      case "swf":
       outPutStr=
           '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="1000" height="585">'
          +'<param name="movie" value="'+adCode+'" />'
          +'<param name="quality" value="high" />'
          +'<embed src="index1.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="1000" height="585"></embed>'
          +'</object>";'
      break;
      default:
       outPutStr="广告加载出错!";
      break;
     }
     document.write(outPutStr);
    }
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using Gnhao.DataHelper;
    using System.Data.SqlClient;public partial class PrintAd : System.Web.UI.Page
    {
        DataHelper helper = new DataHelper(DataSource.SqlServer, ConnString.GetConnString());
        protected string AdCode="";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["AdId"] == null||Request.QueryString["WebSite"]==null)
            {
                AdCode = "";
                return;
            }
            HttpBrowserCapabilities bc = new HttpBrowserCapabilities();
            bc = Request.Browser;
            string ip;
            string browser;
            string platform;
            string refUrl;
            int CityId;
            int adId=2;
            int customerId=1;
            string language;
            string detailPlace;        ip =GetIp();
            browser = bc.Type;
            platform = bc.Platform;
            refUrl = Request.QueryString["WebSite"];
            CityId = GetCityId(ip);
            detailPlace = GetDetailPlace(ip);
            language = Request.UserLanguages[0].ToString();
            //记录来访信息
            RecordVistorInfo(ip, browser, platform, refUrl, CityId,adId,customerId,language,detailPlace);
            //得到广告代码
            AdCode = GetAdUrl(Int32.Parse(Request.QueryString["AdId"].ToString()));
            //Response.Write(AdCode);
            
        }
        //取得城市ID
        public string GetDetailPlace(string ip)
        {
            string sql = "select * from  dbo.GetAddressByIp('" + ip + "')";
            string retVal=string.Empty;
            using (IDataReader reader = helper.ExecuteReader(sql))
            {
                reader.Read();
                retVal += reader["Filed1"].ToString();
                retVal += reader["Filed2"].ToString();
            }
            return retVal;    }    //取得城市ID
        public int GetCityId(string ip)
        {
            string sql = "select dbo.GetCityIdByIp('" + ip + "') as CityId";
            using (IDataReader reader = helper.ExecuteReader(sql))
            {
                reader.Read();
                return reader.GetInt32(0);
            }    }    //记录来访者信息
        private void RecordVistorInfo(string ip, string browser, string platform, string refUrl, int CityId, int aid, int cid, string language, string detailPlace)
        {
            string sql = @"if((select Started from Config) =1)
                            begin
                             insert VisitorInfo(RefUrl,Ip,Platform,Browser,CityId,Aid,Cid,Language,DetailPlace)values('" + refUrl + "','" + ip + "','" + platform + "','" + browser + "'," + CityId + "," + aid + "," + cid + ",'" + language + "','"+detailPlace+"') end";        helper.ExecuteNonQuery(sql);
        }    private string GetAdUrl(int adId)
        {
            string sql = "select AdCode from Ads where Aid=@AdId";
            SqlParameter id = new SqlParameter("@AdId", SqlDbType.Int);
            id.Value = adId;
            using (IDataReader reader = helper.ExecuteReader(sql, id))
            {
                if (reader.Read())
                {
                    return reader.GetString(0);
                }
                else
                {
                    return string.Empty;
                }
            }
        }
        private string GetIp()
        {/*穿过代理服务器取远程用户真实IP地址:*/
            if (Request.ServerVariables["HTTP_VIA"] != null)
                return Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
            else
                return Request.ServerVariables["REMOTE_ADDR"].ToString();
        }
    }
      

  6.   

    上边是我做的广告统计.主要是思路问题吧.要把ASPX当成JS文件来处理hi.baidu.com/gnhao上有
      

  7.   

    调用时
     <script language="javascript" type="text/javascript" src="http://XXXXXXXXXXXXXXXXXXXXXXXXXXXX/PrintAd.aspx?AdId=1&WebSite=www.cncd.cn"></script>
      

  8.   

    可以用Template来实现 io读写进来,用string的format 来写。
    这样代码就很简介和清晰了