框架中提示信息后回调选择Tab

41 篇文章 0 订阅

近日项目中用到一个submit操作,需要给提示并回调函数,需要依旧选择提交之前的Tab选项。

使用layout.js来处理回调的提示。

 JscriptMsg("店主审核待审设置成功", "", "Success");

调用方法是

 /// <summary>
        /// 添加编辑删除提示
        /// </summary>
        /// <param name="msgtitle">提示文字</param>
        /// <param name="url">返回地址</param>
        /// <param name="msgcss">CSS样式</param>
        protected void JscriptMsg(string msgtitle, string url, string msgcss)
        {
            string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\")";
            ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true);
        }
        /// <summary>
        /// 带回传函数的添加编辑删除提示
        /// </summary>
        /// <param name="msgtitle">提示文字</param>
        /// <param name="url">返回地址</param>
        /// <param name="msgcss">CSS样式</param>
        /// <param name="callback">JS回调函数</param>
        protected void JscriptMsg(string msgtitle, string url, string msgcss, string callback)
        {
            string msbox = "parent.jsprint(\"" + msgtitle + "\", \"" + url + "\", \"" + msgcss + "\", " + callback + ")";
            ClientScript.RegisterClientScriptBlock(Page.GetType(), "JsPrint", msbox, true);
        }

开始是使用回调函数来处理回调的。发现下面的方法可能通过框架在chrome中正常调用。

 //返回时选择原来的Tab
        function selecttab(id) {
            var tabContents = $(top.frames["mainframe"].window.document).find(".tab-content");
            var tabs = $(top.frames["mainframe"].window.document).find(".content-tab-ul-wrap a");
            tabs.removeClass("selected");
            tabContents.hide();
            tabs.eq(id).addClass("selected");
            tabContents.eq(id).show();
        }
但是当使用回调时,发现并不能被执行。原来回调时有一个"back参数"。下面是layout里的方法。可以看出窗体被刷新了。因此处理失败。但没有测试去掉back,使用回调函数会不会成功。

//可以自动关闭的提示,基于lhgdialog插件
function jsprint(msgtitle, url, msgcss, callback) {
    var iconurl = "";
    switch (msgcss) {
        case "Success":
            iconurl = "32X32/succ.png";
            break;
        case "Error":
            iconurl = "32X32/fail.png";
            break;
        default:
            iconurl = "32X32/hits.png";
            break;
    }
    $.dialog.tips(msgtitle, 2, iconurl);
    if (url == "back") {
        frames["mainframe"].history.back(-1);
    } else if (url != "") {
        frames["mainframe"].location.href = url;
    }
    //执行回调函数
    if (arguments.length == 4) {
        callback();
    }
}
后来的解决方案是在窗体上加上一个字段来记录是选择的哪一个。来处理的。 时间紧,先草草记录一下。

 hidtab.Value = "1";
            if (result)
            {
                JscriptMsg("店主审核待审设置成功", "", "Success");
            }
            else
            {
                JscriptMsg("店主审核待审设置失败", "", "Error");
            }

 //返回时选择原来的Tab
        function selecttab(id) {
            var tabContents = $(top.frames["mainframe"].window.document).find(".tab-content");
            var tabs = $(top.frames["mainframe"].window.document).find(".content-tab-ul-wrap a");
            tabs.removeClass("selected");
            tabContents.hide();
            tabs.eq(id).addClass("selected");
            tabContents.eq(id).show();
        }
        $(document).ready(function () {
            if ($('#hidtab').val() == '1') {
                selecttab(1);
            };
        });




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值