如何在打开一个静态首页时,先运行一段ASP.NET代码? 现在有一个已经做好了的ASP网站,首页是index.htm。需要我加入一个功能,在打开首页时弹出一个窗口,显示今天谁过生日,C#代码好写,但问题是首页我实在是不想改成index.aspx的,整个页面也容易串行,另外ASP那套东西还调来调去的。我的问题是:如何在一打开index.htm页面时,先运行一段代码,这段代码我写在了一个runFirst.CS文件里了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用ajax的方式,在html页面添加 js脚本事件window.onload = function() { var url = "InsertAjax.aspx" backSubmit(url);}function backSubmit(url, s) { window.document.body.style.cursor = 'wait'; var http; if (window.ActiveXObject) { // IE try { http = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } else if (window.XMLHttpRequest) { http = new XMLHttpRequest(); if (http.overrideMimeType) { http.overrideMimeType('text/xml'); } } http.open("POST", url, false); http.send(s); window.document.body.style.cursor = ''; var responseText = http.responseText; if (responseText == "\\r\\nSession__Expires\\r\\n") { } return responseText;} 新建一个InsertAjax.aspx,把须要的信息返回来就可以了。 请问怎么把需要的信息返回来?用session?还是response.write? 思路是异步调用返回谁过生日信息:1.javasript异步调用方法: /*调用异步处理代码文件ashx*/function Getbirthday() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { // Try to use different activex object try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (xmlhttp == null || !xmlhttp) { return false; } xmlhttp.abort(); xmlhttp.open("GET", "birthday.ashx", false); xmlhttp.setRequestHeader("No-Cache", "1"); xmlhttp.setRequestHeader("Pragma", "no-cache"); xmlhttp.setRequestHeader("Cache-Control", "no-cache"); xmlhttp.setRequestHeader("Expire", "0"); xmlhttp.setRequestHeader("Last-Modified", "Wed, 1 Jan 1997 00:00:00 GMT"); xmlhttp.setRequestHeader("If-Modified-Since", "-1"); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); try { xmlhttp.send(null); } catch (E) { throw new Error(SYS_ERR_MSG); //alert(SYS_ERR_MSG); //return false; } if (xmlhttp.status != 200) { return false; } return xmlhttp.responseText;}2.建立Getbirthday.ashxpublic class Getbirthday: IHttpHandler, IRequiresSessionState{ public void ProcessRequest(HttpContext context) { StringBuilder responseText = new StringBuilder(); responseText.Append("今天是张三的生日"); context.Response.Write("({" + responseText + "})"); context.ApplicationInstance.CompleteRequest(); }}3.调用function showmessage(){ var msg= Getbirthday(); alert(msg);}时间关系,只说实现大体方式,楼主要用需修改。 在html中使用ajax调用一下aspx或者ashx来获取谁过生日然后在html中通过js控制来显示....完毕 感谢你的回复,我确定完全按照你的方法进行了操作,在前台HTM文件中使用javascript调用了ashx文件,为什么运行后什么反应没有?是不是还需要注意什么地方? 我觉得我明白了,弄了一下午,脑子有点晕,我没有让javascript脚本运行起来! 这么复杂。。用JS调用后台方法不就可以了吗?1.后台方法:protected string CsharpVoid(string strCC){ return strCC; } 2.javascript 调用<script language="javascript"> var s = "<%=CsharpVoid("www.test.com")%>"; document.write(s); </script> 检查下,你的调用路径是不是正确?如果开发工具是Vss2008或者2010的话,建议debug下,javascript看看是不是出现什么问题了最后,谢谢给分,抱歉最近出差没上过csdn。 ConnectionString 属性尚未初始化 求解决 我的NHibernate跑不起来 Asp.net,弹出信息提示框问题(ClientScript.RegisterStartupScript)???? 关于定时执行的问题? 怎么看文件的类型 输入字符串后,如何在function中查询? 大侠们,怎么写不大于100的C#正则表达式啊??? 用户代码未处理 System.TypeInitializationException 高手帮忙看下哈~ asp.net 问题??? ASP.NET 中如何解决因刷新而再次提交数据的问题? 数据库里的false如何格式化为"否"? 网站预览
js脚本事件
window.onload = function() {
var url = "InsertAjax.aspx"
backSubmit(url);}
function backSubmit(url, s) {
window.document.body.style.cursor = 'wait';
var http;
if (window.ActiveXObject) { // IE
try {
http = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) { }
}
}
else if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
if (http.overrideMimeType) {
http.overrideMimeType('text/xml');
}
}
http.open("POST", url, false);
http.send(s);
window.document.body.style.cursor = '';
var responseText = http.responseText;
if (responseText == "\\r\\nSession__Expires\\r\\n") {
} return responseText;
} 新建一个InsertAjax.aspx,把须要的信息返回来就可以了。
用session?
还是response.write?
1.javasript异步调用方法:
/*
调用异步处理代码文件ashx
*/
function Getbirthday() {
var xmlhttp;
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) { // Try to use different activex object
try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E) { xmlhttp = false;
}
} if (xmlhttp == null || !xmlhttp) { return false;
} xmlhttp.abort(); xmlhttp.open("GET", "birthday.ashx", false); xmlhttp.setRequestHeader("No-Cache", "1");
xmlhttp.setRequestHeader("Pragma", "no-cache");
xmlhttp.setRequestHeader("Cache-Control", "no-cache");
xmlhttp.setRequestHeader("Expire", "0");
xmlhttp.setRequestHeader("Last-Modified", "Wed, 1 Jan 1997 00:00:00 GMT");
xmlhttp.setRequestHeader("If-Modified-Since", "-1");
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
try {
xmlhttp.send(null);
}
catch (E) {
throw new Error(SYS_ERR_MSG);
//alert(SYS_ERR_MSG);
//return false;
} if (xmlhttp.status != 200) { return false;
}
return xmlhttp.responseText;
}2.建立Getbirthday.ashxpublic class Getbirthday: IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
StringBuilder responseText = new StringBuilder();
responseText.Append("今天是张三的生日");
context.Response.Write("({" + responseText + "})");
context.ApplicationInstance.CompleteRequest();
}
}3.调用function showmessage()
{
var msg= Getbirthday();
alert(msg);
}时间关系,只说实现大体方式,楼主要用需修改。
然后在html中通过js控制来显示....
完毕
1.后台方法:protected string CsharpVoid(string strCC)
{ return strCC; } 2.javascript 调用
<script language="javascript"> var s = "<%=CsharpVoid("www.test.com")%>";
document.write(s); </script>
Vss2008或者2010的话,建议debug下,javascript看看是不是出现什么问题了最后,谢谢给分,抱歉最近出差没上过csdn。