Javascript 加载事件在加载脚本之前触发服务器端脚本

Javascript 加载事件在加载脚本之前触发服务器端脚本,javascript,Javascript,我有一个iframe,它有一个onload事件。这个事件调用了一个函数(iframe_load),我将其放入服务器端脚本中。当我的屏幕启动时,onload事件似乎在服务器端脚本加载之前被触发,我得到一个错误,因为找不到该函数 我通过更改onload事件来调用客户端脚本中的检查函数(iframe\u check\u load)来解决这个问题。这将检查服务器端脚本中是否存在参数,如果找到,它将调用原始函数(iframe_load) 然而,在理想情况下,我不希望有这种检查功能,而是希望将客户端代码保持

我有一个iframe,它有一个onload事件。这个事件调用了一个函数(iframe_load),我将其放入服务器端脚本中。当我的屏幕启动时,onload事件似乎在服务器端脚本加载之前被触发,我得到一个错误,因为找不到该函数

我通过更改onload事件来调用客户端脚本中的检查函数(iframe\u check\u load)来解决这个问题。这将检查服务器端脚本中是否存在参数,如果找到,它将调用原始函数(iframe_load)

然而,在理想情况下,我不希望有这种检查功能,而是希望将客户端代码保持在最低限度。有没有一种方法可以向onload事件添加一些代码来执行此检查,而不必使用checking函数

我当前的代码:

function iframe_check_load(ctrl) {
   if(typeof iframe_flag != "undefined"){
     iframe_load();                               
   }            
}

<IFRAME id=iFrame2 onload=iframe_check_load() ></IFRAME>
函数iframe\u check\u load(ctrl){
if(iframe_标志的类型!=“未定义”){
iframe_load();
}            
}

我相信一定有更好的方法来做这一切,请放心,因为我还在学习JS

由于无法保证在加载帧之前加载脚本,或者反之亦然,因此必须至少执行一次检查,以了解加载帧时外部脚本是否已可用

如果在外部脚本可用之前加载了帧,则可以在加载外部脚本的元素上使用
ONLOAD
属性来通知它已加载。这将确保始终调用
iframe\u load
。假设没有网络错误

<SCRIPT>
//the saved "ctrl" parameter for iframe_load if
//the frame is loaded before custom_scripts.js.
var ctrlParam; //undefined as default

//script loaded handler for custom_scripts.js
function customScriptLoaded() {
    //call iframe_load only if ctrlParam is not undefined.
    //i.e.: frame is already loaded.
    //will do nothing otherwise. leave it to iframe_check_load.
    if (typeof ctrlParam != "undefined") {
        iframe_load(ctrlParam);
    }
}

//check whether it's safe to call iframe_load.
//assuming that "iframe_flag" is defined by custom_scripts.js.
function iframe_check_load(ctrl) {
    if (typeof iframe_flag != "undefined") {
        //custom_scripts.js already loaded.
        //call iframe_load now.
        iframe_load(ctrl);
    } else {
        //custom_scripts.js not yet loaded.
        //save parameter and defer call to iframe_load.
        //iframe_load will be called by customScriptLoaded.
        //ctrl parameter must not be undefined in order to work.
        console.log('Error: ctrl parameter of iframe_check_load is undefined. iframe_load will never be called.');
        ctrlParam = ctrl;
    }
}
</SCRIPT>

<!--Note: Don't forget to duble-quotes attribute values-->
<SCRIPT id="custom_scripts" type="text/javascript" src="htmlpathsub/custom/custom_scripts.js" UserSuppliedFullPath="1" onload="customScriptLoaded()"></SCRIPT>

<!--Using "this" (the IFRAME element) as the "ctrl" parameter-->
<IFRAME id="iFrame2" onload="iframe_check_load(this)"></IFRAME>

//保存的iframe\u加载的“ctrl”参数
//框架在custom_scripts.js之前加载。
var-ctrlParam//未定义为默认值
//为自定义_scripts.js加载的脚本处理程序
函数customScriptLoaded(){
//仅当ctrlParam未定义时调用iframe_load。
//i、 e:框架已加载。
//否则将不会有任何作用。请将其留给iframe\u check\u load。
if(ctrlParam的类型!=“未定义”){
iframe_载荷(ctrlParam);
}
}
//检查调用iframe\u load是否安全。
//假设“iframe_标志”是由custom_scripts.js定义的。
函数iframe\u check\u load(ctrl){
if(iframe_标志的类型!=“未定义”){
//自定义_scripts.js已加载。
//立即调用IFU加载。
ifu加载(ctrl);
}否则{
//自定义_scripts.js尚未加载。
//保存参数并推迟对iframe\u load的调用。
//iframe_load将由customScriptLoaded调用。
//不能未定义ctrl参数才能工作。
log('错误:iframe\u check\u load的ctrl参数未定义。永远不会调用iframe\u load');
ctrlParam=ctrl;
}
}

如何“加载服务器端脚本”?您好,脚本声明如下:
并且包含的外部脚本在iframe之前以html格式出现?您可以发布完整(或至少更多)的html和javascript吗?很难从那个片段中看出发生了什么。