aspnet浏览器
㈠ asp.net中如何判断关闭浏览器
后台是没有办法直接捕获到的,不过可以通过在页面中加入以下脚本让浏览器关闭时触发一次提交
<script>
window.onunload=function(){
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey) //如果是关闭浏览器而不是刷新页面
__doPostBack('closing',''); //触发一次提交
}
</script>
然后即可在后台此动作进行捕获
protected void Page_Load(object sender, EventArgs e)
{
if (Request["__EVENTTARGET"] == "closing")
{
...最后的处理...
Response.End(); //因为是最后的处理,不需要页面输出,所以执行到这里就可以了
}
...原有的正常代码...
}
有些情况下,页面不会自动生成__doPostBack函数即其相关控件(如:页面上只有Button控件时),可以在页面上手工添加以下代码:
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
以上方法对于用户通过任务管理器中止IE进程之类的“狠招”没有任务办法...
另外还有个缺点:
1.只有在用户关闭浏览器时才会触发,如果是页面跳转就捕获不到了
2.当然也可以把那个脚本改成
<script>
window.onunload=function(){ __doPostBack('closing','');}
</script>
这样,不管如果都会触发提交,但是问题更大,因为即使是用户进行正常的页面提交,比如点击页面上的某个按钮也会触发这个事件!
3.解决办法是使用UpdatePanel,这样普通的提交是不会刷新页面的,也就不会触发window.onunload事件了。但是还有一个问题,就是当第一次页面发生跳转时(不管是后台控制还是前面用户操作的)都会使页面变成一个空白页面。因为那个脚本强制让页面刷新了一下,导致跳转失效,而后台捕获到了closing参数,处理完后终止了输出,导致页面变成了空白页。
4.也有办法解决后台控制的跳转问题,前是前台用户修改地址栏这样的跳转就没有办法了,不想细写了,反正我没找到一个完美的解决办法。
PS:以上方法还有一个恶心的用途,把后台的那句"Response.End();"去掉后,就可以让用户永远离开你的页面(包括修改地址栏和点击收藏夹等),除非关闭浏览器
另外再提供一个解决的思路,可以较好的实现页面关闭或页面跳转后的处理,但是实现起来相对麻烦些。就是用ajax做“心跳”:当用户打开你的页面时,保存一个对应的时间戳以及页面关闭后要做的处理中用到的相关信息。在页面中加入一个时间触发器,每过一段时间(比如8秒)就用ajax提交一次,刷新用户对应的时间戳。(也可以在global的sessionstart中进行时间戳的创建,并用sessionid作为标识进行刷新,这样可以不局限于一个页面,做到仅当用户关闭所有打开你的站点的窗口之后才触发,灵活性非常高)另外用一个线程,每过一段时间去检查这个保存的时间戳(比如20秒),如果发现每个时间戳和系统当前时间相差大于等于阀值(比如20秒)即认定用户关闭了浏览器或跳转到别的页面了,然后就可以进行你要的处理了。
写得很乱,不知道你能看明白不?
㈡ ASP.NET C# 怎么根据浏览器显示不同语言版本的网页
一般的做法是 做两套网站
在根目录建两个文件夹 存放页面,
比如我现在做的项目就是这样 分英法 en/ fn/ 复制两份页面
html切换就可以 直接获得当前的location 然后跳转
localhost:11427/en/index.aspx
localhost:11427/fn/index.aspx
㈢ 如何运行ASP.NET网站,并在IE里浏览界面,谢啦!
你是用vs2003,如果是2003的话就要装IIS,要把程序文件设置成web共享目录就是网站虚拟目录。
vs2005或08 不用装IIS有内置的,直接拖个sqlDataSource数据源控件建立连接,然后直接绑定GrideView查看就行。
在工具的aspx页面 重新选择下浏览方式为IE就行了,默认好像都是在工具里面吧
㈣ 怎样兼容多种浏览器 asp.net
现在网页都是用div+css来做,这个也是浏览器最容易出现兼容问题的地方,一般现在做网页要只测试的浏览器有IE6,IE7,IE8,火狐。IE6是目前使用量最多的,所以要着得测试IE6浏览器的兼容问题,现在IE9也已经出来了,可能再过段时间也测试IE9的兼容性。这个是div+Css教案: http://www.cssk8.com/index.html网站里有多种兼容性解决方法
㈤ asp.net用IE浏览器打开都是代码
服务器不支持.net的 缘故.
有时候我在机器上建立WEB服务器,只能浏览html\asp,.net就不行。
需要支持.net才行
㈥ asp.net怎么做到兼容不同浏览器
你可以用 IETester 进行多内核测试..在用火狐 谷歌进行测试
asp.net 主要是数据库的 不同浏览专器显示不同跟属.net没有关系的
主要是html 一般都是多浏览器测试 写差不多的
如果IE7可以看 IE8加上
<meta http-equiv="X-UA-Compatible" content="IE=7"></meta>
可以跟7用一样的
别的就能一个一个测试了
㈦ asp.net 后台控制浏览器
你这个只能打开本地浏览器的就是服务器上的浏览器 不是客户端 而且应该也不能打开本地浏览器 因为iis是个服务 服务在一般情况下是不能打开普通运用程序
㈧ asp.net怎么设置浏览器客户端缓存
1. Expires:+过期时间
表示在指定时间后浏览器缓存失效,需要注意的是这儿的过期时间必须是HTTP格式的日期时间,其他的都会被解析成当前时间“之前”,缓存会马上过期,HTTP的日期时间必须是格林威治时间(GMT),而不是本地时间。举例:
㈨ 急急急!!!asp.net怎么调用浏览器
asp.net本身就是网站开发吧? 需要浏览器才能运行的吧?
还要怎么调用浏览器?
如果是要实现打印功能
做一个按钮,加个onclick事件
javascript完成
function print(){
window.print();
}
㈩ asp.net里怎么判断用的浏览器是IE还是谷歌
用JavaScript获得。
以下代码转自http://www.cnblogs.com/wqing/archive/2012/08/13/2636626.html
JS获取浏览器信息
浏览器代码名称:navigator.appCodeName
浏览器名称:navigator.appName
浏览器版本号:navigator.appVersion
对Java的支持:navigator.javaEnabled()
MIME类型(数组):navigator.mimeTypes
系统平台:navigator.platform
插件(数组):navigator.plugins
用户代理:navigator.userAgent
DEMO:
Js代码
<script language="JavaScript">
<!--
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
return "Gecko";
}
}
alert("您的浏览器类型为:"+getOs());
-->
</script>