【问题标题】:C# Calling JS before page loadsC# 在页面加载之前调用 JS
【发布时间】:2013-01-17 04:25:05
【问题描述】:

是否可以在页面加载之前(或在页面上调用其他 javascript 代码之前)调用 JS 代码?例如:使用 webbrowser 控件,我导航到“http://google.com”,但是在执行 google 上的任何 js 代码之前,我想做一些类似“alert('one moment!');”的事情。

关于我如何做到这一点的任何想法?我猜我必须在完全加载之前以某种方式修改 html,添加 js 函数,然后使用 invokescript 执行它,但不知道该怎么做。

【问题讨论】:

标签: c# javascript webbrowser-control


【解决方案1】:

我的第一个建议是在<head> tag 中使用脚本:

<body>
    <head>
    <script type="text/javascript">
        // ...
    </script>

你可以使用 jQuery:

$(document).ready(function()
{
    // ...
});

或者:

window.onload = function()
{ 
    // ...
}

无论如何,你必须特别努力不做这种事情。这是一种非常糟糕的做法,尤其是在涉及用户交互的情况下。

【讨论】:

    【解决方案2】:

    您是否尝试实现加载屏幕?我通过在页面加载时强制回发,在回发中进行繁重的工作,然后在回发完成时隐藏加载屏幕来做到这一点。

    【讨论】:

      【解决方案3】:

      将以下代码放在页面顶部。这甚至会在整个文档加载之前调用

      <script type="text/javascript">
          // add javascript code
          alert('Page not even loaded but the javascript runs');
      </script>
      

      这将是必要的。如果您希望脚本在 DOM 对象完成并且页面加载完成后运行,请在 document.ready 中执行

      【讨论】:

        【解决方案4】:

        如果您使用 C#(Razor 渲染引擎),您可以在页面顶部使用以下代码

        @if(true){
        <script>
         // your script
        </script>
        }
        

        【讨论】:

          猜你喜欢
          • 2019-11-28
          • 2014-10-30
          • 1970-01-01
          • 1970-01-01
          • 2017-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-21
          相关资源
          最近更新 更多