簡體   English   中英

無法調用函數以從另一個JavaScript文件傳遞變量值

[英]unable to call function to pass variable value from another javascript file

我使用特定的問題名稱以避免重復的問題名稱,因為我發現一些張貼者也存在相同的問題,並且我使用了提供的解決方案,但仍然無法從另一個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;
};

因為在實際情況下,我有2條以上的消息,所以每2條消息將共享一個值,因此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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM