Javascript 如何根据结果打开不同的本地文件?

Javascript 如何根据结果打开不同的本地文件?,javascript,Javascript,我对javascript非常陌生,我对这个脚本有一个问题: function processInp() { var x = parseInt(document.querySelector('input[name="num"]').value); if (!x) { alert("NaN"); return false } else if (x > 480) { alert("Overflow!"); r

我对javascript非常陌生,我对这个脚本有一个问题:

function processInp() {
    var x = parseInt(document.querySelector('input[name="num"]').value);
    if (!x) {
        alert("NaN");
        return false
    } else if (x > 480) {
        alert("Overflow!");
        return false
    }
    window.open("../files/" + x + '.html');
    return true
}
首先,它检查输入是否为数字,然后检查输入是否高于480,因此抛出警报和错误。那很好,很有效。我真正不能做的是根据输入打开url。可以用数字吗?怎么用?完整的例子,如果可能的话。谢谢大家!

看看您的示例,我认为这可能是由于范围

将行
函数processInp(){
更改为
window.processInp=function(){
(即)似乎工作正常


如果您想进一步阅读,我认为这是一篇关于scope的非常好的帖子:

是的,在这种情况下,javascript会将x转换为strong,因此您的
窗口。open
行应该返回
“./files/12.html”
?@Stu是的,如果12是用户输入,那么是的。啊,好的,我想这就是目的?你想如何根据用户输入打开文件?即,根据输入范围等不同的值?如果输入为1,则打开1.html。如果输入为450,则打开450.html。@Stu在你的情况下应该可以工作,那么?ix x=12,它将打开“./files/12.html”?如果x=110,它将打开“./files/110.html”这个问题可能是特定于JSFIDLE的。如果函数一开始就在全局范围内,那么它应该被提升到顶部。@Vld,没错,我不认为这是绝对的答案,但我认为查看实际应用程序中代码的范围和位置将有助于找到正确的解决方案:)为什么是-1?我正在尝试point在正确的方向上运行,我想我已经解释了为什么以及如何…@Stu哦,是的-它有助于显式地将函数分配给
窗口
对象-这样,即使它稍后出于任何原因包装在闭包中,它仍然可以工作。只是想指出,JSFIDLE中的行为不一定是有效的“代表“它是如何工作的。编辑:也没有否决票。@Vld 100%同意,但由于我们看不到OP的完整代码,我只能猜测正确答案,我已经说过我非常确定这是一个范围问题,即表单无法在jsfiddle中看到函数……但同意它需要进一步查看,因此我认为范围链接可能会有所帮助:)