【问题标题】: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>
}