我想知道的是,如果所有的 aspx/html 页面都有同名的控件,并且所有这些控件都在一个通用的 js 文件中引用,那不会导致任何冲突吗?
例如:txtComment
andtxtDate
是两个控件one.aspx
,它们在one.js
. 同时,这两个控件在 中定义two.aspx
并在 中引用one.js
。现在服务器如何知道这个脚本执行后返回到哪里。
请专家对此有所了解。谢谢你
我想知道的是,如果所有的 aspx/html 页面都有同名的控件,并且所有这些控件都在一个通用的 js 文件中引用,那不会导致任何冲突吗?
例如:txtComment
andtxtDate
是两个控件one.aspx
,它们在one.js
. 同时,这两个控件在 中定义two.aspx
并在 中引用one.js
。现在服务器如何知道这个脚本执行后返回到哪里。
请专家对此有所了解。谢谢你
您的 ASP.NET 代码实质上是运行并生成 HTML 文档。此生成的 HTML 的一部分可以通过 HTMLscript
标记包含对外部 JavaScript 文件的引用。一旦 HTML 页面在服务器上完全形成,并向下发送到客户端浏览器,浏览器本身就会看到该 JavaScript 引用,并执行其中包含的 JavaScript。
JavaScript 本身实际上并不知道您的 ASP.NET 控件。相反,它执行查看 HTML 文档对象模型 (DOM) 的代码,并尝试查找 HTML 元素。您将看到类似var x = document.getElementById('thing');
的代码,它基本上告诉脚本查找 ID 属性为“thing”的 HTML 对象,并在名为“x”的变量中创建对它的引用。从那里,您可以使用您在 JavaScript 中获得的其他方法来操作由“x”引用的 HTML 元素。您可以销毁它、克隆它、更改其 HTML 内容、更改其各种 HTML 属性等等。
您的页面可以无缝地协同工作,因为您已经在 JS 文件中输入了要操作的元素的正确 ID。JS 文件本身无法真正意识到它们实际上是在服务器上呈现为 HTML 的 ASP.NET 控件。
JavaScript 在它包含在<script>
标签中的页面的上下文中执行。它不知道也不关心这是什么实际页面(我猜你可以包括基于位置的逻辑)。
两个页面都有可以引用的控件这一事实是偶然的。尝试从一页中删除控件并观察会发生什么。
另外,请记住 JavaScript 在客户端执行,因此服务器不关心它返回的位置。