javascript - ASP.NET 和 Javascript 链接和事件顺序

标签 javascript asp.net

情况:

我正在 ASP.NET 中使用带有标记和 javascript 的 HTML 文件、几个 .js 文件、样式表以及 ASP.NET 页面上的一些附加内联 javascript 构建一个页面。在 Visual Studio 2010 中使用 ASP>NET 开发服务器主机。

XML 和 js 文件由第三方提供,无法更改,其中一个 js 文件是“我们的”文件,可以更改。

HTML 文件是可以填写的调查问卷。目前,我们有一个桌面应用程序来“托管”HTML 文件并保存答案。

总体目标是在网站中托管调查问卷,以便我们可以在网络上复制桌面应用程序的功能。 Javascript 将用于复制桌面应用程序不复制 ASP.NET 的内容。

HTML 文件包含 <script>指向 js 文件的链接以及标记后的一大块内联 javascript。 内联 javascript 中的一行(不是函数,而是实际的代码行)调用“我们的”包含文件中的函数。

在 ASP.NET 代码中,我从 HTML 文件中提取内容并将其应用于构建 ASP.NET 页面。 CSS 链接、脚本链接、标记、内联脚本 block 等。因此输出响应如下所示:

<html>
    <head>
        <link to CSS>
        <script src=thirdparty.js>
        <script src=our.js>
    </head>
    <body>
        third party HTML markup
        <script>
            line of code here that calls function in our.js;
        </script>
        <script>
            desktop duplication code here;
        </script>
    </body>
</html>

如果我复制 js 文件的内容并将它们作为内联脚本 block 构建到页面中,一切都会正常工作。如果我将它们作为链接包含,那么有时上面提到的行会抛出一个 调试器中出现“函数未定义”错误。即,它的行为就像未加载/包含 javascript 文件一样。据我所知,这不应该发生,因为所有的 javascript 都应该在运行之前加载和解析。

问题:

JavaScript 是否乱序/异步加载?如果是这样,我怎样才能在该行运行之前强制加载和解析所有 JavaScript。

注释:

是的,我确实必须在 ASP.NET 中构建页面,"file"是动态的并且实际上是从 Web 服务读取的,因此无法提前准备。我正在尝试创建一种处理多个 vendor 调查问卷的通用方法。

第三方 JavaScript 和标记仅适用于 IE,因为它是一个遗留系统。

由于显而易见的原因,我无法显示实际代码。

最佳答案

我找到的答案与我上面提到的问题无关。

当页面工作时,DOCTYPE 标记不存在,但当页面失败时,DOCTYPE 标记存在。因此,问题在于第三方标记不符合任何形式的标准,为了使其正常工作,浏览器必须处于怪异模式,这是通过省略 DOCTYPE 标记来实现的。

一点也不明显。

关于javascript - ASP.NET 和 Javascript 链接和事件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10446002/

相关文章:

javascript - Jquery从选项菜单获取表单值

javascript - Blockly 在 Node.js 上

asp.net - 如何从 ASP.NET Core 项目中删除 docker 支持?

Javascript 警报在 IE 中提示两次

php - 如何在 Highcharts 中将 PHP 数组添加到 JS 数组

java - 将 JSON 从 Javascript 客户端发送到 Atmosphere 框架中的 Jersey 资源

javascript - 在不同浏览器中测试javascript兼容性的任何工具或云服务

html - 使用 CSS 媒体查询

c# - 回发时转到页面顶部

asp.net - 移动应用程序 Web API 身份验证