簡體   English   中英

如何在沒有提示的情況下獲取用戶在 JavaScript 中的輸入

[英]How to get user input in JavaScript without prompt

我正在尋找一種無需使用 prompt(); 即可在 JS 中獲取用戶輸入的方法; 命令。 我很清楚之前有人問過這個問題,但我能找到的所有其他問題都包括使用 html,而我正在尋找一種方法來使用純 JavaScript,在程序中,而不是作為網頁的一部分. 提前致謝。

JavaScript沒有本機獲取輸入的方法。 存在的每種方法都是主機環境提供的擴展( prompt是其中的一個示例)

不同的主機環境具有不同的方法。 您已經為瀏覽器確定了一個,而DOM是另一個。 NodeJS具有Readline API(以及其他)。 還有許多其他環境(WSH,JXA等)。

JS除了瀏覽器提供的功能外,沒有其他“功能”。 除非要使用Java,否則它應在瀏覽器上使用,但這是另一回事。 因此,提示可能是使用JS的最佳方法,除非您要使用確認,這將為您提供布爾表達式的等效功能。

var answer = confirm("Yes or no?")

這將給您一個正確或錯誤的答案。

如果您正在練習/出現任何競爭性編碼,下面是在 javascript 中獲取用戶輸入的代碼。

Input:
4
1 2 3 4
Output:
{
  n:4,
  arr:[1,2,3,4]
}
function runProgram(input){
    let line=input.split('\n')
    let n= Number(line[0]);
    let arr = line[1].split(' ').map(x => +x);
    yourFunc(n,arr);
}

function yourFunc(n,arr){
    console.log({n,arr})
}

if(process.env.USER === ""){
    runProgram('')
}
else{
    process.stdin.resume();
    process.stdin.setEncoding('ascii');
    let read="";
    process.stdin.on('data',function(inp){
        read+=inp
    })
    process.stdin.on('end',function(inp){
        read=read.replace(/\n$/,"");
        read=read.replace(/\n$/,"");
        runProgram(read);
    });
    process.on("SIGINT",function(){
        read=read.replace(/\n$/,"");
        runProgram(read);
        process.exit(0);
    })
}

我不知道在提示符下將其刪除的特定命令,但也許您可以使用alert();。

暫無
暫無

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

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