Javascript 为JS文档指定errorpage.html.getElementById(';link#u id';).value+';。html';;如果在目录中找不到值?

Javascript 为JS文档指定errorpage.html.getElementById(';link#u id';).value+';。html';;如果在目录中找不到值?,javascript,html,Javascript,Html,这是一个弹出式搜索功能的函数,当键入一个单词并按下enter键时(handleKeyPress(e)函数,它会自动显示为dogs.html(这是一个儿童语言学习应用程序)。但是,如果他们键入“dogg”而不是“dog”,我希望它转到指定的错误页。我根本无法编码,只操纵过其他人的脚本。例如,目录 将有一个anives.html列表,即dog.html、cat.html等,但如果键入的单词不在此目录中 (应该有一个搜索功能来查看*.html是否存在,如果不存在则转到错误页面。但我不能这样做。我没有受

这是一个弹出式搜索功能的函数,当键入一个单词并按下enter键时(handleKeyPress(e)函数,它会自动显示为dogs.html(这是一个儿童语言学习应用程序)。但是,如果他们键入“dogg”而不是“dog”,我希望它转到指定的错误页。我根本无法编码,只操纵过其他人的脚本。例如,目录 将有一个anives.html列表,即dog.html、cat.html等,但如果键入的单词不在此目录中

(应该有一个搜索功能来查看*.html是否存在,如果不存在则转到错误页面。但我不能这样做。我没有受过任何培训。有人能帮我吗?我希望我不会再被甩出这个论坛,你真的不应该对白痴如此苛刻…) i、 e.我需要的是:if.value+'.html'不在目录中; 转到errorpage.html

以下是“我的”代码,用于加载键入的word页面:

function goTo()
{
    location.href = document.getElementById('link_id').value + '.html';
    /*window.location.replace("spellcheck.html");*/
}  

function handleKeyPress(e){
     var key=e.keyCode || e.which;
           if (key==13){
           goTo(); 
        /*window.location.replace("spellcheck.html");   */
     }
}

您可能必须使用来检查文件是否存在于指定的位置,如果文件不存在,则重定向到错误页面。但这会引发它自己的一系列问题


或者,您可以在服务器上创建一个服务,该服务可以告诉您相同的信息。无论哪种方式,这都不是非常简单。

如前所述,您可以创建一个数组,该数组可以保存站点中已知页面的所有值

(代码段中有大量注释文本,以获取更多详细信息)

JavaScript数组:

JavaScript.indexOf()(与数组相关):

JavaScript数组是一系列在方括号内分开的数据。每个元素都会自动分配一个索引值,以便开发人员可以快速引用特定的片段。但是,重要的是要知道数组的索引号从0开始

因此,在本例中:

const arrayName=['element1','element2','page3','dog']

  • 'element1'
    位于arrayName内部的索引
    0
  • 'element2'
    位于arrayName内部的索引
    1
  • 'page3'
    位于arrayName内部的索引
    2
  • 'dog'
    位于arrayName内部的索引
    3
可以使用JavaScript数组的
.indexOf()
查找这些数组索引值。如果数组中不存在元素,则
.indexOf()
将返回-1(负一)

arrayName.indexOf('dog')
=
3

//获取获取文本的输入元素
常量linkID=document.getElementById('link_id');
//获取搜索按钮
const linkBtn=document.getElementById('link_btn');
//监听keyup事件发生的时间(因此当用户
//键入,释放钥匙时将触发此操作)
linkID.addEventListener('keyup',(e)=>{
//获取要测试[ENTER]/13的键码
设key=e.keyCode | | e.which;
//获取textBox元素
设target=e.target | | e.src元素;
//测试是否按了[ENTER]键
如果(键===13){
//如果[输入]测试该值
processPage(target.value);
}
});
//收听“搜索”按钮上的“单击”事件以
//启动流程工作流。。。
linkBtn.addEventListener('单击',()=>{
processPage(linkID.value);
});
//这样中断了对文本的处理
//字段可以通过[ENTER]或单击
//搜索按钮
函数进程页(val){
//如果文本匹配,checkPage将返回true/false
//数组列表中的页面
如果(检查页(val)){
//如果页面确实存在,则启动重定向
后藤;
}否则{
//显示错误消息
警报('抱歉,您正在查找的页面不存在');
//重置链接id的值
linkID.value='';
}
}
//此函数用于检查提交的文本值是否匹配
//保存到阵列中的一个静态页面
功能检查页(val){
//pages[]是一个数组,包含您知道的所有页面
//存在
const pages=['dog'、'cat'、'bunny'];
//.indexOf()将返回搜索的数组位置
//查询(在本例中为val的值)
//数组从0开始,因此如果用户搜索“dog”
//.indexOf()将提供答案0。
//如果元素不存在,.indexOf()返回-1
//通过将其指定为条件:
//“数组页[]中val的索引是否更大
//大于或等于0?”
//我们创建一个将返回true/false的条件
返回(页码索引(val)>=0);
}
功能转到(val){
log(val+'.html');
//location.href=val+'.html';
}

search
我相信错误页面是由服务器处理的,而不是由JavaScript完成的。您可以尝试ping该网页以查看它是否存在,然后智能地重定向(这可能会有帮助:)但是你必须让用户等待适当的时间来确定页面是否存在。从服务器上看,它应该更快更干净。谢谢你的回答。对我来说,问题是我没有使用任何类型的服务器,我只是,我想我太没经验了——我正在移植的是一个html/css/javascript站点Visual Studio中的Apache Cordova扩展…我想如果没有服务器,或者在当前目录中搜索input.html,如果找不到,则重定向到自定义错误页。这将省去对服务器的需要,但我两者都做不到…特定目录中甚至没有140.html文件。如果您的文件不是动态的(在您的控制下),您可以创建一个数组/列表,列出您知道存在的所有文件并进行检查,但这只能从这个特定的访问点帮助您。如果有人试图在