我继承了一个 ASP.net 代码库,但我的 ASP.net 技能非常有限。我很难理解为什么某些东西有效,以及为什么它只在 IE 中有效。
页面中出现以下代码:-
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="map.aspx.cs" Inherits="Romtrac.auth_map" Culture="auto" UICulture="auto" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>
<% = Resources.Resource.map %>
</title>
</head>
<body>
<form id="adminlw_map_form" action="<%=geturl()%>" method="post" >
<% = Resources.Resource.loading %>...
<textarea name="xml" id="xml" runat="server" style="display:none" cols="1" rows="1"></textarea>
</form>
<script language="javascript" type="text/javascript" >
//submit main form immediately
document.getElementById('adminlw_map_form').submit();
</script>
</body>
</html>
此代码在 ASP.net 中运行良好。表单会自动提交,返回的页面会在 Iframe 中正确呈现。我的问题是;
1) body 中的 javascript 是否在遇到时才执行?这是好的做法还是应该响应事件执行?
2) 为什么这在其他浏览器中不起作用?
最佳答案
- 是
- 在浏览器完全呈现页面之前正在执行 javascript。在这种情况下,表单尚未呈现且无法通过 DOM 访问。
执行需要在DOM被浏览器完全加载后发生,可以通过将调用封装在一个函数中并通过body的onload事件调用该函数来实现,或者使用jquery等javascript库 Hook 来实现页面的加载事件。
关于asp.net - html body中的Javascript遇到时是否执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/859806/