是否可以在页面加载之前(或在页面上调用其他 javascript 代码之前)调用 JS 代码?例如:使用 webbrowser 控件,我导航到“http://google.com”,但是在执行 google 上的任何 js 代码之前,我想做一些类似“alert('one moment!');”的事情。
关于我如何做到这一点的任何想法?我猜我必须在它完全加载之前以某种方式修改 html,添加 js 函数,然后使用 invokescript 执行它,但不知道我会怎么做。
是否可以在页面加载之前(或在页面上调用其他 javascript 代码之前)调用 JS 代码?例如:使用 webbrowser 控件,我导航到“http://google.com”,但是在执行 google 上的任何 js 代码之前,我想做一些类似“alert('one moment!');”的事情。
关于我如何做到这一点的任何想法?我猜我必须在它完全加载之前以某种方式修改 html,添加 js 函数,然后使用 invokescript 执行它,但不知道我会怎么做。
我的第一个建议是在里面使用脚本<head> tag
:
<body>
<head>
<script type="text/javascript">
// ...
</script>
你可以使用 jQuery:
$(document).ready(function()
{
// ...
});
或者:
window.onload = function()
{
// ...
}
无论如何,您必须特别努力不做这种事情。这是一种非常糟糕的做法,尤其是在涉及用户交互的情况下。
您是否尝试实现加载屏幕?我通过在页面加载时强制回发,在回发中进行繁重的工作,然后在回发完成时隐藏加载屏幕来做到这一点。
将以下代码放在页面顶部。这甚至会在整个文档加载之前被调用
<script type="text/javascript">
// add javascript code
alert('Page not even loaded but the javascript runs');
</script>
这将做必要的事情。如果您希望脚本在 DOM 对象完成并且页面加载完成后运行,请在 document.ready 中执行
如果您使用 C#(Razor 渲染引擎),您可以在页面顶部使用以下代码
@if(true){
<script>
// your script
</script>
}