分享代码,asp.net后台使用js,便利函数

--缪军-- 2011-06-19 04:38:25

using System.Web;
using System.Web.UI;
public static class JSHelper {
public static void Alert(string pMsg) {
string _s = "alert('" + pMsg + "');";
JSHelper.Execute(_s);
}
//可覆盖特定的Key的Js脚本
public static void Execute(string pKey, string pJSString) {
Page _thisPage = (Page)HttpContext.Current.Handler;
ScriptManager.RegisterStartupScript(_thisPage, _thisPage.GetType(), pKey, pJSString, true);
}
//不会被覆盖的js脚本
public static void Execute(string pJSString) {
JSHelper.Execute(MyHelper.ToString(Guid.NewGuid()), pJSString);
}


写的不好,请多指教
...全文
172 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
--缪军-- 2011-06-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 caozhy 的回复:]
引用 8 楼 moneysoft 的回复:
引用 6 楼 caozhy 的回复:
精神可嘉。鼓励下。

不过这些技巧都是违反Web开发的最佳实践的,不提倡。

说说看,洗耳恭听

没什么。。。其实关于最佳实践,我说过很多次,没人听,现在也懒得说了。

说点题外话。这种拼接Javascript的东西很容易被利用,实现xss攻击。
[/Quote]

请给个您发表过观点的相关链接,谢了
threenewbee 2011-06-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 moneysoft 的回复:]
引用 6 楼 caozhy 的回复:
精神可嘉。鼓励下。

不过这些技巧都是违反Web开发的最佳实践的,不提倡。

说说看,洗耳恭听
[/Quote]
没什么。。。其实关于最佳实践,我说过很多次,没人听,现在也懒得说了。

说点题外话。这种拼接Javascript的东西很容易被利用,实现xss攻击。
--缪军-- 2011-06-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 caozhy 的回复:]
精神可嘉。鼓励下。

不过这些技巧都是违反Web开发的最佳实践的,不提倡。
[/Quote]
说说看,洗耳恭听
--缪军-- 2011-06-19
  • 打赏
  • 举报
回复
感谢1,2楼的大牛的补充,
不过,你们没有仔细阅读我的代码,
我的代码不依赖任何Page,也不从page继承,可独立分发,
以后,所有的函数,都受益于底层的函数,比如,2楼的代码可以这样:
public static void AlertGo(string context, string url){
JSHelper.Alert(context);
JSHelper.GoToUrl(url);
}

threenewbee 2011-06-19
  • 打赏
  • 举报
回复
精神可嘉。鼓励下。

不过这些技巧都是违反Web开发的最佳实践的,不提倡。
子夜__ 2011-06-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wosizy 的回复:]

额! 我在项目中封装了个类
这里就不贴了 .....
[/Quote]
代码多不 贴来收藏啊。
wosizy 2011-06-19
  • 打赏
  • 举报
回复
额! 我在项目中封装了个类
这里就不贴了 .....
q107770540 2011-06-19
  • 打赏
  • 举报
回复
看这代码格式
以前写JAVA的?
porschev 2011-06-19
  • 打赏
  • 举报
回复

这个没什么好指教的。。一般做项目都会写个工具类。。。

反正项目中重复出现三次我感觉就应该想到提取了


//再跟你补个方法。。
#region##弹框并跳转
/// <summary>
/// 弹框并跳转
/// </summary>
/// <param name="page"></param>
/// <param name="context"></param>
/// <param name="url"></param>
public static void AlertGo(System.Web.UI.Page page, string context, string url)
{
StringBuilder sb = new StringBuilder();
sb.Append("<script>alert(\"");
sb.Append(context);
sb.Append("\");location.href=\"");
sb.Append(url);
sb.Append("\"</script>");
page.ClientScript.RegisterStartupScript(page.GetType(), "", sb.ToString());
}
#endregion

子夜__ 2011-06-19
  • 打赏
  • 举报
回复
封装好的吗?

我也有个。不过比较老的了

 public class JScript : System.Web.UI.Page
{
protected static HttpResponse Response;
protected static HttpSessionState Session;
public JScript()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 弹出JavaScript小窗口,并转向指定的页面
/// </summary>
/// <param name="message">弹出信息</param>
/// <param name="toURL">专转向的网页</param>
public static void AlertAndRedirect(string message, string toURL)
{
string js = "<script language=javascript>alert('{0}');window.location.replace('{1}')</script>";
HttpContext.Current.Response.Write(string.Format(js, message, toURL));
}
/// <summary>
/// 弹出JavaScript小窗口
/// </summary>
/// <param name="js">窗口信息</param>
public static void Alert(string message)
{
message = StringUtil.DeleteUnVisibleChar(message);
string js = @"<Script language='JavaScript'>
alert('" + message + "');</Script>";
HttpContext.Current.Response.Write(js);
}
public static void Alert(object message)
{
string js = @"<Script language='JavaScript'>
alert('{0}');
</Script>";
HttpContext.Current.Response.Write(string.Format(js, message.ToString()));
}

/// <summary>
/// 确认窗口 如:(是否删除)
/// </summary>
/// <param name="message"></param>
/// <param name="strWinCtrl"></param>
public static void RtnRltMsgbox(object message, string strWinCtrl)
{
string js = @"<Script language='JavaScript'>
strWinCtrl = true;
strWinCtrl = if(!confirm('" + message + "'))return false;</Script>";
HttpContext.Current.Response.Write(string.Format(js, message.ToString()));
}

/// <summary>
/// 回到历史页面
/// </summary>
/// <param name="value">-1/1</param>
public static void GoHistory(string value)
{
string js = @"<Script language='JavaScript'>
history.go({'" + value + "'})</Script>";
HttpContext.Current.Response.Write(string.Format(js, value.ToString()));
}

/// <summary>
/// 关闭当前窗口
/// </summary>
public static void CloseWindow()
{
string js = @"<Script language='JavaScript'>
window.close();
</Script>";
HttpContext.Current.Response.Write(js);
HttpContext.Current.Response.End();
}

/// <summary>
/// 刷新父窗口
/// </summary>
public static void RefreshParent()
{
string js = @"<Script language='JavaScript'>
parent.location.reload();
</Script>";
HttpContext.Current.Response.Write(js);
}

/// <summary>
/// 格式化为JS可解释的字符串
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string JSStringFormat(string s)
{
return s.Replace("\r", "\\r").Replace("\n", "\\n").Replace("'", "\\'").Replace("\"", "\\\"");
}

/// <summary>
/// 刷新打开窗口
/// </summary>
public static void RefreshOpener()
{
string js = @"<Script language='JavaScript'>
opener.location.reload();
</Script>";
HttpContext.Current.Response.Write(js);
}

/// <summary>
/// 打开窗口
/// </summary>
/// <param name="url"></param>
public static void OpenWebForm(string url)
{

/*…………………………………………………………………………………………*/
/*修改人员: */
/*修改时间: */
/*修改目的: 新开页面去掉ie的菜单。。。 */
/*注释内容: */
/*开始*/
string js = @"<Script language='JavaScript'>
//window.open('" + url + @"');
window.open('" + url + @"','','height=0,width=0,top=0,left=0,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no');
</Script>";
/*结束*/
/*…………………………………………………………………………………………*/
HttpContext.Current.Response.Write(js);
}
public static void OpenWebForm(string url, string name, string future)
{
string js = @"<Script language='JavaScript'>
window.open('" + url + @"','" + name + @"','" + future + @"')
</Script>";
HttpContext.Current.Response.Write(js);
}
public static void OpenWebForm(string url, string formName)
{
/*…………………………………………………………………………………………*/
/*修改人员: */
/*修改时间:
/*修改目的: 新开页面去掉ie的菜单。。。 */
/*注释内容: */
/*开始*/
string js = @"<Script language='JavaScript'>
//window.open('" + url + @"','" + formName + @"');
window.open('" + url + @"','" + formName + @"','height=0,width=0,top=0,left=0,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no');
</Script>";
/*结束*/
/*…………………………………………………………………………………………*/

HttpContext.Current.Response.Write(js);
}

/// <summary>
/// 函数名:OpenWebForm
/// 功能描述:打开WEB窗口
/// 处理流程:
/// 算法描述:
/// 作 者:
/// 日 期:
/// 修 改:
/// 日 期:
/// 版 本:
/// </summary>
/// <param name="url">WEB窗口</param>
/// <param name="isFullScreen">是否全屏幕</param>
public static void OpenWebForm(string url, bool isFullScreen)
{
string js = @"<Script language='JavaScript'>";
if (isFullScreen)
{
js += "var iWidth = 0;";
js += "var iHeight = 0;";
js += "iWidth=window.screen.availWidth-10;";
js += "iHeight=window.screen.availHeight-50;";
js += "var szFeatures ='width=' + iWidth + ',height=' + iHeight + ',top=0,left=0,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no';";
js += "window.open('" + url + @"','',szFeatures);";
}
else
{
js += "window.open('" + url + @"','','height=0,width=0,top=0,left=0,location=no,menubar=no,resizable=yes,scrollbars=yes,status=yes,titlebar=no,toolbar=no,directories=no');";
}
js += "</Script>";
HttpContext.Current.Response.Write(js);
}
/// <summary>
/// 转向Url指定的页面
/// </summary>
/// <param name="url"></param>
public static void JavaScriptLocationHref(string url)
{
string js = @"<Script language='JavaScript'>
window.location.replace('{0}');
</Script>";
js = string.Format(js, url);
HttpContext.Current.Response.Write(js);
}

/// <summary>
/// 指定的框架页面转换
/// </summary>
/// <param name="FrameName"></param>
/// <param name="url"></param>
public static void JavaScriptFrameHref(string FrameName, string url)
{
string js = @"<Script language='JavaScript'>

@obj.location.replace(""{0}"");
</Script>";
js = js.Replace("@obj", FrameName);
js = string.Format(js, url);
HttpContext.Current.Response.Write(js);
}

/// <summary>
///重置页面
/// </summary>
public static void JavaScriptResetPage(string strRows)
{
string js = @"<Script language='JavaScript'>
window.parent.CenterFrame.rows='" + strRows + "';</Script>";
HttpContext.Current.Response.Write(js);
}
/// <summary>
/// 函数名:JavaScriptSetCookie
/// 功能描述:客户端方法设置Cookie
/// 作者:
/// 日期:
/// 版本:
/// </summary>
/// <param name="strName">Cookie名</param>
/// <param name="strValue">Cookie值</param>
public static void JavaScriptSetCookie(string strName, string strValue)
{
string js = @"<script language=Javascript>
var the_cookie = '" + strName + "=" + strValue + @"'
var dateexpire = 'Tuesday, 01-Dec-2020 12:00:00 GMT';
//document.cookie = the_cookie;//写入Cookie<BR>} <BR>
document.cookie = the_cookie + '; expires='+dateexpire;
</script>";
HttpContext.Current.Response.Write(js);
}

/// <summary>
/// 函数名:GotoParentWindow
/// 功能描述:返回父窗口
/// 处理流程:
/// 算法描述:
/// 作 者:
/// 日 期: 2003-04-30 10:00
/// 修 改:
/// 日 期:
/// 版 本:
/// </summary>
/// <param name="parentWindowUrl">父窗口</param>
public static void GotoParentWindow(string parentWindowUrl)
{
string js = @"<Script language='JavaScript'>
this.parent.location.replace('" + parentWindowUrl + "');</Script>";
HttpContext.Current.Response.Write(js);
}
}
ASP.NET学习大全,包括以下文档: GridView导出excel 小山的TreeView数据绑定方法 ADO.NET在开发中的部分使用方法和技巧.txt ADO.NET中的视图和过滤器.doc ASP .NET - ArrayList对象.txt asp.net 2.0中TREEVIEW中动态增加结点.txt Asp.net 实现验证码功能的Web控件.txt asp.net常用的javascript经典例子.doc asp.net常用函数表.doc ASP.NET程序中常用的三十三种代码.doc ASP.NET程序中实现校验码图像生成.txt ASP.NET导出EXCEL类.txt ASP.NET导出数据到Excel.txt ASP.NET对IIS中的虚拟目录进行操作.txt asp.net里导出excel表方法汇总.txt ASP.NET文件上传程序的源代码.txt Asp.Net中文本换行.txt ASPNET中实现在线用户检测(使用后台守护线程).txt C# 读取计算机CPU,HDD信息.txt DataGrid导出EXCEL的几个方法(WebControl).txt DataGrid的打印预览和打印.txt GridView排序.txt GRID控件删除之前确认.txt javascript小技巧.doc MVC在Web系统中的模式与应用.doc NET中各种数据库连接大全.doc Treeview控件2.0与ACCESS数据库.txt TreeView使用集锦.txt Web Service服务.doc WEB中实现打印预览.txt 根据用户名生成注册码的算法.txt 关于asp.net导出Excel.txt 汉字转拼音缩写.txt 将DataGrid数据写入Excel文件.txt 揭开ASP.NET中Cookie编程的奥秘.txt 利用TreeView控件动态生成无限级树.txt 实现一个Asp.net自定义Back控件.txt 使用XML创建Excel文档.txt 鼠标停留在GridView某一行时颜色改变.txt 微软提供的加密方法.txt 无法破解的软件注册码算法.txt 用Asp.net实现简单的文字水印.txt 用ASP.Net写一个发送ICQ信息的程序.txt 在ASP.NET使用Treeview控件和XML.txt
包含内容部分示例: GridView导出excel 小山的TreeView数据绑定方法 ADO.NET在开发中的部分使用方法和技巧.txt ADO.NET中的视图和过滤器.doc ASP .NET - ArrayList对象.txt asp.net 2.0中TREEVIEW中动态增加结点.txt Asp.net 实现验证码功能的Web控件.txt asp.net常用的javascript经典例子.doc asp.net常用函数表.doc ASP.NET程序中常用的三十三种代码.doc ASP.NET程序中实现校验码图像生成.txt ASP.NET导出EXCEL类.txt ASP.NET导出数据到Excel.txt ASP.NET对IIS中的虚拟目录进行操作.txt asp.net里导出excel表方法汇总.txt ASP.NET文件上传程序的源代码.txt Asp.Net中文本换行.txt ASPNET中实现在线用户检测(使用后台守护线程).txt C# 读取计算机CPU,HDD信息.txt DataGrid导出EXCEL的几个方法(WebControl).txt DataGrid的打印预览和打印.txt GridView排序.txt GRID控件删除之前确认.txt javascript小技巧.doc MVC在Web系统中的模式与应用.doc NET中各种数据库连接大全.doc Treeview控件2.0与ACCESS数据库.txt TreeView使用集锦.txt Web Service服务.doc WEB中实现打印预览.txt 根据用户名生成注册码的算法.txt 关于asp.net导出Excel.txt 汉字转拼音缩写.txt 将DataGrid数据写入Excel文件.txt 揭开ASP.NET中Cookie编程的奥秘.txt 利用TreeView控件动态生成无限级树.txt 实现一个Asp.net自定义Back控件.txt 使用XML创建Excel文档.txt 鼠标停留在GridView某一行时颜色改变.txt 微软提供的加密方法.txt 无法破解的软件注册码算法.txt 用Asp.net实现简单的文字水印.txt 用ASP.Net写一个发送ICQ信息的程序.txt 在ASP.NET使用Treeview控件和XML.txt

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧