当前位置:编程学习 > C#/ASP.NET >>

pageLoad 里面 js不执行


        //pageload 函数
        if (!IsPostBack)
        {
            CheckLogin();
            CheckPurView();
            BindData();
        }
         /// <summary>
    /// 判断是否登录
    /// </summary>
    private void CheckLogin()
    {
        if (Session["bk_UserName"] == null || Session["bk_UserID"] == null)
        {
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "Login", "alert('请重新登录!');window.parent.location.href = 'Login.aspx';", true);
            return;
        }
    }
    /// <summary>
    /// 判断权限
    /// </summary>
    private void CheckPurView()
    {
        bool blnResult = false;
        string strUserID = Session["bk_UserID"].ToString();
        string strPurView = bll.GetModel(Convert.ToInt32(strUserID)).User_Right;
        for (int i = 0; i < strPurView.Split(',').Length; i++)
        {
            if (strPurView.Split(',')[i] == "103")
            {
                blnResult = true;
                break;
            }
        }
        if (blnResult == false)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "PurView", "alert('您没有权限访问此页面'); history.go(-1);", true);
        }
    }


 为什么PageLoad 里的js 不执行 --------------------编程问答--------------------   Page.ClientScript.RegisterStartupScript(Page.GetType(), "Login", "alert('请重新登录!');window.parent.location.href = 'Login.aspx';", true); 这句不执行。 --------------------编程问答-------------------- 你让他如何执行.....
PageLoad()是后台方法,
那个时候页面还在服务器端生成中,
还没到传到客户端浏览器中来,
js如何执行?? --------------------编程问答-------------------- 把“window.parent.location.href = 'Login.aspx'”这个去掉 看看alert执行吗? --------------------编程问答--------------------
引用 2 楼 foren_whb 的回复:
你让他如何执行.....
PageLoad()是后台方法,
那个时候页面还在服务器端生成中,
还没到传到客户端浏览器中来,
js如何执行??
  有道理。 --------------------编程问答-------------------- 貌似我理解错了 --------------------编程问答--------------------
引用 2 楼 foren_whb 的回复:
你让他如何执行.....
PageLoad()是后台方法,
那个时候页面还在服务器端生成中,
还没到传到客户端浏览器中来,
js如何执行??
 我用的框架 ,怎么跳转? --------------------编程问答-------------------- RegisterStartupScript  已过时。在页响应中发出客户端脚本块。  --------------------编程问答-------------------- alert(也没执行) --------------------编程问答-------------------- 检查下blnResult 的值 是否为false
--------------------编程问答-------------------- Page.GetType()改成this.GetType()看看 --------------------编程问答-------------------- 到  string strUserID = Session["bk_UserID"].ToString();  提示有错误
Page.GetType()改成this.GetType()看看  也不行 --------------------编程问答--------------------
引用 1 楼 saxok 的回复:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Login", "alert('请重新登录!');window.parent.location.href = 'Login.aspx';", true); 这句不执行。
你的页面是否用了ajax? --------------------编程问答--------------------
引用 1 楼 saxok 的回复:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Login", "alert('请重新登录!');window.parent.location.href = 'Login.aspx';", true); 这句不执行。

Page.ClientScript.RegisterStartupScript(this,GetType(), "Login", "<script>alert('请重新登录!');window.parent.location.href = 'Login.aspx';</script>", false); 试试 --------------------编程问答--------------------
引用 12 楼 zhulong1111 的回复:
引用 1 楼 saxok 的回复:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "Login", "alert('请重新登录!');window.parent.location.href = 'Login.aspx';", true); 这句不执行。
你的页面是否用了ajax?
 没用ajax --------------------编程问答--------------------
引用 2 楼 foren_whb 的回复:
你让他如何执行.....
PageLoad()是后台方法,
那个时候页面还在服务器端生成中,
还没到传到客户端浏览器中来,
js如何执行??
 你好像说对了。 我把CheckPurView()
 加上了 判断为空的 函数,要不会在运行时报错 因为
string strUserID = Session["bk_UserID"].ToString();
这句有错误。我加了


        if (Session["bk_UserID"] == null)
        {
            return;
        }

 页面能正常进行pageload ,所以 到了客户端才能进行 js --------------------编程问答-------------------- response.write("<script>alert("xxxx")</script>")
这样写就OK了 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 16 楼 hujife 的回复:
response.write("<script>alert("xxxx")</script>")
这样写就OK了

这样写容易导致页面元素排列混乱,
轻易不要这么写 --------------------编程问答-------------------- Page.ClientScript.RegisterStartupScript(Page.GetType(), "Login", "alert('请重新登录!');window.parent.location.href = 'Login.aspx';", true);

你调试看看走这句话了吗 --------------------编程问答-------------------- basepage
ihttphanlder判断session
ClientScript.RegisterStartupScript(this,GetType(), "Login", "<script>alert('请重新登录!');top.location.href = 'Login.aspx';</script>", false);  --------------------编程问答-------------------- 已经ok了吗,刚进来看到! --------------------编程问答-------------------- Session["bk_UserName"] == null || Session["bk_UserID"] == null

这个判断有问题吧!
这是一个对象吧,本身不为Null吧
应该trim(Session["bk_UserName"].toString()) == ""; --------------------编程问答-------------------- 一切都有可能!! --------------------编程问答-------------------- Try the following code:   

ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(), alert('请重新登录!');window.parent.location.href = 'Login.aspx';", true);
--------------------编程问答-------------------- --------------------编程问答-------------------- 来看大牛们的解释 --------------------编程问答-------------------- 不要加return看看 --------------------编程问答--------------------
引用 15 楼 saxok 的回复:
引用 2 楼 foren_whb 的回复:
你让他如何执行.....
PageLoad()是后台方法,
那个时候页面还在服务器端生成中,
还没到传到客户端浏览器中来,
js如何执行??
你好像说对了。 我把CheckPurView()
 加上了 判断为空的 函数,要不会在运行时报错 因为
string strUserID = Session["bk_UserID"].ToStrin……
 这个说的对啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,