无法调用函数从另一个javascript文件传递变量值

unable to call function to pass variable value from another javascript file

本文关键字:文件 变量值 javascript 另一个 调用 函数      更新时间:2023-09-26

我使用了一个特定的问题名称来避免重复的问题名称,因为我发现一些海报也有同样的问题,我已经使用了提供的解决方案,但仍然无法从另一个javascript文件中调用函数,并使用alert()查看另一个js文件中传递到html页面的变量值。

在我的file.js文件中,我有一个函数来声明一个数组并放置一个全局变量:

function MsgsArr(){
var Msgs = [
  "Msg1.",
  "Msg2.",
];
return Msgs;
}
var Msgs_Arr = MsgsArr();

然后是一个创建随机消息并声明全局变量的函数:

function CreateRandomMsg(){
var RandomMsg = Msgs_Arr[Math.floor(Math.random()* Msgs_Arr.length)];
return RandomMsg;
}
var Random_Msg = CreateRandomMsg();

然后是我想要实现的最后一个功能,显示基于随机消息的值:

function ValuesToCheck(){
if (Random_Msg == Msgs_Arr[0] || Random_Msg == Msgs_Arr[1]){
var check = facesDet.photos[0].tags[0].attributes.glasses.value
};
return check;
};

由于在实际情况下,我有两条以上的消息,每两条消息将共享一个值,因此if语句将更长。在我的file1.html文件中,在一个函数中,我想显示最终值(true或false),我使用alert(ValuesToCheck())来调用该函数,但它不起作用。如果我在这里声明像var a = facesDet.photos[0].tags[0].attributes.glasses.value;alert(a);这样的值,它就会起作用。当我试图从另一个js文件调用函数时,我不知道为什么事情不起作用,请帮忙。对不起,这个问题读起来太长了。感谢您花时间阅读。

var facesDet = $.getJSON( APIdetect, function(facesDet) {
})
.done(function (facesDet, tid) {
    var tid = facesDet.photos[0].tags[0].tid;
    Load(tid);
    alert(ValuesToCheck());
});

我可以看到,在ValueToCheck函数中,RandomMsg和Msgs是未初始化的。基本上它们不是全球性的。您需要使用Random_Msg和Msgs_Arr。

试试这个。

function ValuesToCheck(){
   if (Random_Msg1 == Msgs_Arr[0] || Random_Msg2 == Msgs_Arr[1]){
      var check = facesDet.photos[0].tags[0].attributes.glasses.value
   };
   return check;
};

在您的js文件中

var Random_Msg1 = CreateRandomMsg(),
    Random_Msg2 = CreateRandomMsg();