javascript - 如何在初始页面加载时调用 javascript 函数

标签 javascript asp.net

我有一个脚本,可以从我创建的列表中加载国家/地区选项。我希望能够仅在页面加载的初始时间加载它,而不是在每次加载后加载它。问题是当我尝试单击按钮并保存信息时,它会恢复到列表的开头。为此使用的最佳窗口方法是什么?我查看了替代窗口方法,但没有成功找到解决方案。 Onloadstart 似乎也不起作用。

此外,我的脚本位于我的“用户控制”页面上,因此我不想从代码隐藏中调用该函数。

       window.onload = function () {

       var countryElement = document.getElementById('countryId');

       var listOfCountries = ["Select Country","Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Anguilla", "Antigua & Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas"
, "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia & Herzegovina", "Botswana", "Brazil", "British Virgin Islands"
, "Brunei", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands", "Chad", "Chile", "China", "Colombia", "Congo", "Cook Islands", "Costa Rica"
, "Cote D Ivoire", "Croatia", "Cruise Ship", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea"
, "Estonia", "Ethiopia", "Falkland Islands", "Faroe Islands", "Fiji", "Finland", "France", "French Polynesia", "French West Indies", "Gabon", "Gambia", "Georgia", "Germany", "Ghana"
, "Gibraltar", "Greece", "Greenland", "Grenada", "Guam", "Guatemala", "Guernsey", "Guinea", "Guinea Bissau", "Guyana", "Haiti", "Honduras", "Hong Kong", "Hungary", "Iceland", "India"
, "Indonesia", "Iran", "Iraq", "Ireland", "Isle of Man", "Israel", "Italy", "Jamaica", "Japan", "Jersey", "Jordan", "Kazakhstan", "Kenya", "Kuwait", "Kyrgyz Republic", "Laos", "Latvia"
, "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Mauritania"
, "Mauritius", "Mexico", "Moldova", "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco", "Mozambique", "Namibia", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia"
, "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palestine", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Poland", "Portugal"
, "Puerto Rico", "Qatar", "Reunion", "Romania", "Russia", "Rwanda", "Saint Pierre & Miquelon", "Samoa", "San Marino", "Satellite", "Saudi Arabia", "Senegal", "Serbia", "Seychelles"
, "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "South Africa", "South Korea", "Spain", "Sri Lanka", "St Kitts & Nevis", "St Lucia", "St Vincent", "St. Lucia", "Sudan"
, "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Timor L'Este", "Togo", "Tonga", "Trinidad & Tobago", "Tunisia"
, "Turkey", "Turkmenistan", "Turks & Caicos", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "Uruguay", "Uzbekistan", "Venezuela", "Vietnam", "Virgin Islands (US)"
, "Yemen", "Zambia", "Zimbabwe"];

       countryElement.options.length = 0;
       for (var i = 0; i < listOfCountries.length; i++) {
           countryElement.options[i] = new Option(listOfCountries[i]);
       }
   }

最佳答案

您的问题是您正在使用服务器端代码与客户端代码混合。当您单击按钮时,会导致服务器回发,服务器再次将页面传递给客户端,从而导致该页面中的 onload 代码再次运行,并使用与上次相同的值时间。

您应该使用 IsPostBack 属性来确定页面是否是第一次加载,并且仅在第一次加载时才包含该客户端脚本。

关于javascript - 如何在初始页面加载时调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36020412/

相关文章:

javascript - ZingChart 不显示 wordcloud 中的所有单词

javascript - Ember.js 身份验证操作不起作用

javascript - 如何滑动或移动这组 Div

asp.net - 脚本控件可能不会在 PreRender 之前注册。使用定时器控制时

asp.net - SendGrid 营销电子邮件延迟?

Javascript - Tic Tac Toe - 如何遍历获胜条件?

javascript - 文件读取器异步加载文件后获取文件名

ASP.NET 响应.过滤器

c# - 使用密码模式的文本框

asp.net - Web 方法的最大数量?