首页 新闻 会员 周边 捐助

Asp.NET 有什么办法可以让js代码在Page_Load前执行?

0
悬赏园豆:5 [待解决问题]

我想在页面进入后台Page_Load方法前,执行一个JS判断客户端是否开启cookies,于是在head里加了这样一句js

 <script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
    <script type="text/javascript">
        $().ready(function () { document.getElementById("<%=hidIsEnableCookies.ClientID %>").value = navigator.cookieEnabled; alert(2); });
    </script>

就是把是否开启cookies的值给hid控件,然后去Page_Load里取这个控件的值……

 

可是它每次都先执行Page_Load才去执行js..

 

有什么办法可以先执行js呢?

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2013-04-30 11:27
< >
分享
所有回答(10)
0

IsPostBack前处理,或者是试下注册吧

twistting | 园豆:575 (小虾三级) | 2013-04-30 11:41
0

这是不可能实现的,用ajax加载页面才能实现

sinhbv | 园豆:2579 (老鸟四级) | 2013-04-30 14:14
0

换个思路吧,如果不确定是否开了cookie,先跳转到另外一个页面写一个cookie,然后再跳转回来,这时候如果能拿到cookie,就说明可以用,拿不到,那就说明不能用。

I,Robot | 园豆:9783 (大侠五级) | 2013-04-30 15:30
0

直接在$().ready中判断cookie可不可用,不就行了啊

chenping2008 | 园豆:9836 (大侠五级) | 2013-05-01 10:43
0

汗,你在page_load里给response.cookie赋值,然后redirect,然后判断request.cookie里有没有值,不就行了。

我只是来看戏的 | 园豆:367 (菜鸟二级) | 2013-05-01 14:11
1

何需js来做,asp.net 当然内置支持这种检测,浏览器会把自己出卖的。

[C#] 
if (Request.Browser.Cookies == true)
{
   //...
}

arg | 园豆:1047 (小虾三级) | 2013-05-01 18:46

谢谢你的回答,这个是判断浏览器是否支持cookies,不能判断浏览器是否开启cookies。

我把cookies功能禁用后,用这个看到的仍然是True,还有什么更好办法吗?

支持(0) 反对(0) hexllo | 园豆:318 (菜鸟二级) | 2013-05-05 13:15

@hexllo: 那就得用 Rainier-Soft.Com说的方法了,一个专门判断具有检测cookie功能的页面,全局标志该客户是否已启用,是否已检测过cookie的标志。比如首次访问,则先看是否支持,是否已检测,如果没有检测,则跳到检测页面,检测页面具备判断功能和跳转回原来页面的功能,这些过程应该都很快,基本看不到页面的切换。

支持(0) 反对(0) arg | 园豆:1047 (小虾三级) | 2013-05-07 01:17
0

page_load都没有执行,你的页面还没有响应,谈何客户端。基于的cokkie的信息,应该会在后台访问request.xx。

arg 回答的应该是正解。

邢少 | 园豆:10926 (专家六级) | 2013-05-02 10:25
0

要了解一下 页面的生命周期 ,http://msdn.microsoft.com/zh-cn/library/ms178472(v=vs.80).aspx

@@@一统@@@ | 园豆:1551 (小虾三级) | 2013-05-02 12:48
0
Insus.NET | 园豆:932 (小虾三级) | 2013-05-20 16:48
0

page_load是服务器语言,js是前台语言,可以完全的分离开来一点联系都没有,你为嘛要先执行js

一叶兰舟飘 | 园豆:351 (菜鸟二级) | 2013-07-04 08:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册