在不同的库中调用JavaScript函数

时间:2016-02-24 19:17:47

标签: javascript xpages

在我看来,这应该是可能的。在XPages应用程序中,我有两个ServerSide JavaScript库 jsMain jsSave 。在jsMain我有这个脚本:

function thisAction(msg:String){
    try{

    switch(msg){
    case "Save" :
        print("This action = " + msg);
        if (jsSave.processAction()){
            print("jsSave.processAction returned true");
            return true;
            break;
        }else{
            print("jsSave.processAction returned false");
            return false;
            break;
        }
    default:
        print("In default msg is " + msg);
        return false;
        break;
    }
    }catch(e){
        print("thisAction Failed in jsMain " + e.toString())
    }
}

在XPage上的一个按钮中,我调用thisAction("Save")并调用thisAction函数,现在当msg为Save时我想调用函数processAction,但它驻留在JS库jsSave中。上面的内容因错误而失败:   此动作在jsMain' jsSave'中失败找不到

那么有没有办法告诉这段代码,processAction在不同的SSJS库中?

4 个答案:

答案 0 :(得分:4)

添加

127

在你的jsMain库之上,没有引号,没有文件扩展名:你将能够使用jsMain中jsSave中声明的函数。

答案 1 :(得分:0)

如果先加载jsMain,则无法在jsSave中调用函数。但是,您可以从jsSave中调用jsMain中的函数,因为它是先加载的。

答案 2 :(得分:0)

您的页面应该包括js库和jsSave库应该是第一个。

<script src="jsSave.js"></script>
<script src="jsMain.js"></script>

另请参阅模块化javascript模式。

答案 3 :(得分:-1)

您是否尝试将两个库添加到您的页面?我认为那会奏效。或者,我想在库的顶部你可以做类似于LotusScript的事情:

use "myLibrary" 

我想说你这样做:

import("jsSave");

但我对语法不肯定。我确定很久以前我已经做过了。