编程练习中HTML页面跳转功能失效求助(附代码)
为什么我的HTML页面跳转功能失效了?
我在编程练习时遇到问题,无法实现从一个HTML文件跳转到另一个HTML文件。以下是我编写的相关代码:
<script type="text/Javascript"> function userSubmit(){ var choice, output; choice = document.getElementById('colourMenu'); if (choice === 'file:///Users/missminimegs/Documents/pinkpulldown.html'){ window.location.href = "file:///Users/missminimegs/Documents/pinkpulldown.html"; } } </script> <style> body { background: rgb(204, 204, 255); font-family: Arial; col
让我来帮你排查问题:
核心问题:你拿错了判断对象
你现在用document.getElementById('colourMenu')获取到的是整个下拉框(<select>)的DOM元素,而不是用户选中的选项的值。这就好比你拿着整个菜单去和一道菜的名字比,肯定匹配不上,所以你的if条件永远不会触发,跳转自然不会执行。
次要问题:代码不完整
你的CSS片段最后只写了col,明显没写完(应该是color之类的属性吧?),虽然这不会直接影响跳转,但还是建议补全,避免后续样式出问题。
修复方案
调整你的JavaScript代码,获取下拉框选中的value值,而不是元素本身:
<script type="text/javascript"> function userSubmit(){ var choice; // 重点:获取选中选项的value属性 choice = document.getElementById('colourMenu').value; // 这里可以直接用变量,不用重复写URL if (choice === 'file:///Users/missminimegs/Documents/pinkpulldown.html'){ window.location.href = choice; } // 额外优化:如果下拉框的每个选项value都是目标URL,甚至可以去掉if判断 // window.location.href = choice; } </script> <style> body { background: rgb(204, 204, 255); font-family: Arial; /* 补全你的CSS属性,比如 color: #333; */ } </style> <!-- 提醒一下:你的下拉框HTML结构应该类似这样,确保每个option都设置了正确的value --> <select id="colourMenu"> <option value="file:///Users/missminimegs/Documents/pinkpulldown.html">粉色主题页面</option> <!-- 其他选项示例 --> <option value="file:///Users/missminimegs/Documents/bluepulldown.html">蓝色主题页面</option> </select> <!-- 要有触发函数的元素,比如按钮 --> <button onclick="userSubmit()">跳转至选中页面</button>
额外小贴士
尽量别用file://协议直接打开本地HTML文件,容易遇到文件权限或者路径解析的问题。建议搭个简单的本地服务器,比如用Python运行python -m http.server,或者用Node.js的http-server,这样用http://localhost:端口号访问页面,路径处理会更顺畅。
内容的提问来源于stack exchange,提问作者E Van Dinther
相关产品推荐
相关产品推荐

