gpt4 book ai didi

javascript - 多个 window.onload 函数

转载 作者:行者123 更新时间:2023-11-30 05:51:34 26 4
gpt4 key购买 nike

我有一个名为 start() 的 JavaScript 函数,它有多个函数可以使用 window.onload 函数加载。但是,我有以下功能可以独立正常工作。但是,如果我将它写在 window.onload 中,则它不起作用。

//START()     
window.onload = start;

function start()
{
loadValues();
showState4();
}

独立工作的代码。

window.onload=function(){
document.getElementById("src2TargetAll").onclick = function() {
sureTransfer(document.getElementById("net"), document.getElementById("target"), true);
};
};

我尝试在 window.onload 中重写代码如下,但它不起作用。如何在单个 window.onload 函数中重写以下代码。

window.onload = start;

function start()
{
loadValues(); //loadValues() and showState4() works fine without sendValues().
showState4();
sendValuess(); // tested this sendValues without above two functions and that also works fine. but three functions in window.onload creates a problem
}


function sendValuess(){
document.getElementById("src2TargetAll").onclick = function() {
sureTransfer(document.getElementById("net"), document.getElementById("target"), true);
};
};

sendValues() 添加到window.onload 后出现的错误如下:

STOP RUNNING THIS SCRIPT?A SCRIPT ON THIS PAGE IS CAUSING YOUR WEB BROWSER TO RUN SLOWLY. IF IT CONTINUES TO RUN, YOUR COMPUTER MIGHT BECOME UNRESPONSIVE.

下面是 loadValues 的代码和一个试图帮助我的人请求的其他函数:

function showState4(){
var me = document.getElementById('stk1');
var values = ''; //populate selected options
for (var i=0; i<me.length; i++)
if (me.options[i].selected)
values += me.options[i].value + ',';
values = values.substring(0, values.length-1);
var selected=[values];

var temp= new Array();
temp = values.split(",");

var del = document.getElementById('StakeHolder');

for(var i=0; i<del.length; i++)
{
for(var j=0;j<temp.length;j++)
{

if(temp[j] == del.options[i].value)
{

del.options[i].selected = true;
}
}
}
}

function loadValues()
{
var RD_REQ_RT_ID = "<%=RD_REQ_RT_ID %>";
if(RD_REQ_RT_ID=="null")
{
document.getElementById('requestType').value="";
}
else{
document.getElementById('requestType').value=RD_REQ_RT_ID;
}
)


_

function sureTransfer(from, to, all) {
if ( from.getElementsByTagName && to.appendChild ) {
while ( getCount(from, !all) > 0 ) {
transfer(from, to, all);
}
}
}
function getCount(target, isSelected) {
var options = target.getElementsByTagName("option");
if ( !isSelected ) {
return options.length;
}
var count = 0;
for ( i = 0; i < options.length; i++ ) {
if ( isSelected && options[i].selected ) {
count++;
}
}
return count;
}
function transfer(from, to, all) {
if ( from.getElementsByTagName && to.appendChild ) {
var options = from.getElementsByTagName("option");
for ( i = 0; i < options.length; i++ ) {
if ( all ) {
to.appendChild(options[i]);
} else {
if ( options[i].selected ) {
to.appendChild(options[i]);
}
}
}
}
}

如何将 sendValues() 添加到 window.onload 而没有任何问题?

最佳答案

window.addEventListener 在 IE 中不起作用,因此请使用 window.attachEvent

你可以这样做:

function fun1(){
// do something
}

function fun2(){
// do something
}


var addFunctionOnWindowLoad = function(callback){
if(window.addEventListener){
window.addEventListener('load',callback,false);
}else{
window.attachEvent('onload',callback);
}
}

addFunctionOnWindowLoad(fun1);
addFunctionOnWindowLoad(fun2);

关于javascript - 多个 window.onload 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14547818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com