×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

Not so complicated

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function PreLoad() {
var imag = document.getElementById('imgLoading');
if (imag != null) {
imag.style.visibility = 'visible';
imag.src = image_Url;
}
return true;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"
onclientclick="PreLoad();" />
<img id="imgLoading" alt="" src="" style="visibility:hidden" /></div>

...
</form>
</body>
</html>
Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术讨论 / 这里有哪位TX遇到Javascript执行document.write()就报permission denied,然后就不继续执行下面的语句。
    如果把document.write() 注释掉,其他code都没问题,只要一call document.write()就permission denied,放狗搜了一圈,有说domain问题的,有说不同frame的问题,但这些似乎在我的code都不work,我加了 document.domain = document.domain.substring(document.domain.indexOf('.') + 1); 没用,而且我是在测试code里调试的,简单的一个aspx页面,一个按钮,一个javascript的function。
    • document.write can not run after page loaded. your case?
      • Thanks! I want an effect like this:
        after clicking a button(execute some heavy job,may take 10 secs), a gif shows up in clients' browser, after heavy job done, the gif should be hided. That's all. So in this case, without using document.write, how could we write something in client's browser after page loaded? .
        • first DIV show the gif, and second DIV is the "heavy job". after it is loaded, it covers the first DIV.
          • 现在问题是第一个div都document.write了就报告permission denied,后面的不run了。
            • try prototype and google element.update(); It's what you need.
              • 谢谢,不过这个俺没玩出来:P 你试过吗?
        • if you are using .NET, you can try PageRequestManager Class to do partial render stuff.
          • 这个不知道可行否,下周找个时间我来试试,因为我用了一个第三方control,和UpdatePanel不兼容,这个class用的和UpdatePanel一样的API的话估计就够呛。
    • 谢谢LS各位帮忙,虽然没有直接用上你们的方法,但你们给了我idea,我现在这样解决的:
      本文发表在 rolia.net 枫下论坛Step1: 在.aspx文件末尾加一个<div id="loading" ></div> 因为啥也没有,所以不trigger看不见

      Step2: 在.aspx文件里加入

      <script language="javascript" type="text/javascript">

      function PreLoading()
      {
      document.getElementById("Loading").innerHTML="<div id=\'nestedLoading\' class=\'TransparentGrayBackground\'/>";

      document.getElementById("nestedLoading").innerHTML="<img class=\'PageUpdateProgress\' src=\'Pics/loading.gif\' /> ";

      }
      </script>
      其中TransparentGrayBackground和PageUpdateProgress是自定义的CSS,为了让loading image看上去更酷一些:)

      Step3:
      把原来<asp:button id="btnSubmit" runat="server" />换成<input type="Button" runat="server" ... />, onclick="PreLoading();" (如果用onclick="return PreLoading();"就要加__doPostBack("<%= this.BtnSubmit.ClientID %>"); 如果多个按钮都需要call这个PreLoading() function还要做if判断,麻烦)

      step4:在.cs文件里加入override OnInit(EventArgs e),
      protected override void OnInit(EventArgs e)
      {
      InitializeComponent();
      base.OnInit(e);
      }

      private void InitializeComponent()
      {
      this.btnSubmit.ServerClick += new EventHandler(this.btnSubmit_Click);
      }
      这样是为了把以前的server control button method subscribe到新的HTML control button上,每当点击btnSubmit后先执行PreLoading()里的那2行code,然后系统再postback回去,run btnSubmit_Click() method。更多精彩文章及讨论,请光临枫下论坛 rolia.net
      • Not so complicated
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head runat="server">
        <title></title>
        <script type="text/javascript">
        function PreLoad() {
        var imag = document.getElementById('imgLoading');
        if (imag != null) {
        imag.style.visibility = 'visible';
        imag.src = image_Url;
        }
        return true;
        }
        </script>
        </head>
        <body>
        <form id="form1" runat="server">
        <div>

        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"
        onclientclick="PreLoad();" />
        <img id="imgLoading" alt="" src="" style="visibility:hidden" /></div>

        ...
        </form>
        </body>
        </html>
        • 还是你这个方法最简单,谢谢深蓝tx。