繁体   English   中英

如何从页面执行定义到页面中包含的.js文件中的JavaScript函数?

[英]How can I perform a JavaScript function defined into a .js file included in my page from the page?

我是JavaScript的新手,我有以下疑问。

在JSP页面中,我包括一个.js文件,其中包含一个函数定义,以这种方式:

<script src="<c:url value="resources/js/userAgentInfo.js" />"></script>

在这个userAgentInfo.js文件中,我定义了一个函数,如下所示:

function exludeUserAgent() {

    ...............................................
    ...............................................
    ...............................................

    if (browserName === "Microsoft Internet Explorer" && majorVersion <= 10) {
        alert("EXCLUDE");
        return true;
    }

    return false;
}

好的,现在我的问题是:如何调用此exludeUserAgent()函数并将其执行到页面中? 我已经包含了包含其定义的文件,但是现在我想在加载页面时执行它。

特纳克斯

在您的JSP页面中编写以下代码:

<script type="text/javascript">
$(document).ready(function(){
   exludeUserAgent()
});
</script>

只需在您的网页中使用以下单个代码块:

<script type="text/javascript"> exludeUserAgent();</script> 

如果页面中有jQuery,请尝试:

<script type="text/javascript">
$(document).ready(function(){
   exludeUserAgent()
});
</script>

如果没有可用的jQuery,则可以尝试:

<script type="text/javascript">
    window.onload = function(){
        exludeUserAgent();
    };
</script>

这两个脚本块只需要成为您的jsp的一部分

通常,我将事件附加到窗口的onload事件。 只要页面上最初存在的所有资源都已加载(css / html / images / sounds / videos),就会触发该事件。

为此,您只需要执行以下操作:

window.addEventListener('load', onDocLoaded, false);

接下来,您需要一个实际上将处理此事件的函数:

function onDocLoaded(evt)
{
   /* initialization code goes here */
}

在您的情况下,您只需要在exludeUserAgent的主体上添加对exludeUserAgent函数的onDocLoaded

为什么要等到页面加载? 我认为您想在脚本文件加载后立即执行此操作。

只需在脚本文件上添加对函数的调用即可:

exludeUserAgent()
function exludeUserAgent() {

    ...............................................
    ...............................................
    ...............................................

    if (browserName === "Microsoft Internet Explorer" && majorVersion <= 10) {
        alert("EXCLUDE");
        return true;
    }

    return false;
}

另一个注意事项:如您所见,可以在定义函数之前调用它。 这就是JavaScript的工作方式...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM