我有一个带2个按钮的登录页面。我希望当我点击注册按钮时,会打开一个新的html页面(register.html)。所有文件都位于同一文件夹中。
到目前为止我尝试了什么: 我的 index.html 文件(主页):
List<string> types = new List<string> { "Hearts", "Diamonds", "Spades", "Clubs" };
List<dynamic> cards = new List<dynamic>
{
new {Text = "Ace", Number = 11 },
new {Text = "2", Number = 2},
new {Text = "3", Number = 3},
new {Text = "4", Number = 4},
new {Text = "5", Number = 5},
new {Text = "6", Number = 6},
new {Text = "7", Number = 7},
new {Text = "8", Number = 8},
new {Text = "9", Number = 9},
new {Text = "Jack", Number = 10 },
new {Text = "Queen", Number = 11 },
new {Text = "King", Number = 12 }
};
var cardDeck = (from type in types
from card in cards
select new Card(card.Text, type, card.Number)).ToList();
server.js:
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<link rel="stylesheet" href="CSS.css">
<script src="JS.js"></script>
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
</head>
<body>
<div id="login">
User Name:<br>
<input type="text" id="username"><br>
Password:<br>
<input type="password" id="password"><br><br>
<input type="button" onclick="loginUser()" value="Login"></button>
<input type="button" onclick="RegisterUser()" value="Register"></button>
</div>
</body>
</html>
Javascript文件:
var express = require('express');
var lastResult = '';
var app = express();
var path = require('path');
var bodyParser = require('body-parser');
app.use(bodyParser());
app.use(express.static(path.join(__dirname + '/')));
app.get('/register',function(req,res){
res.sendFile('/register.html');
});
app.listen(3000);
还有我想在点击后打开的注册表,html文件。 我试图创建一个&#34; RegisterUser()&#34;函数调用服务器上的get函数的JS文件。 我是所有node.js中的新手,表达服务器世界。如果没有正确的方法,请纠正我。
谢谢!
答案 0 :(得分:0)
我希望当我点击注册按钮时,会打开一个新的html页面(register.html)
您正在发出Ajax请求,然后对服务器发送的数据不执行任何操作。
如果您想打开新页面...只需使用链接。
<a href="/register">Login</a>
答案 1 :(得分:0)
如果您只是想在不使用<a>
元素的情况下将用户重定向到其他页面,则可以使用javascript!
有两种方法可以做到这一点,一种是模拟用户点击<a>
标签,然后创建新链接,另一种模拟http重定向。
模拟用户点击的好处是,用户可以使用浏览器的后退和前进按钮在页面之间导航。
以下是模拟点击的方法:
window.location.href = 'your link'
如果您想模拟http重定向:
window.location.replace('your link')
如果你想从你的本地服务器(文件夹)中取出文件,那么只需调用该文件,它就像这样:
window.location.replace('register.html`)
注意,这只适用于前端脚本而不需要jQuery。如果你想让它在后端工作,那么你将需要另一个名为socket.io的node.js插件。使用套接字,您可以允许客户端调用服务器来执行功能。您可以在此处详细了解:socket.io
我不认为使用托管服务器的server.js文件也可以在前端执行客户端的功能。我通常有两个文件,index.js
这是我的服务器文件,是node.js读取的文件,然后我有client.js
这是发送给客户端的文件。它只是让事情变得更简单。
答案 2 :(得分:-1)
您可以更改注册按钮的onClick
属性以将浏览器定向到注册页面,然后您的js服务器将发送html文件。
<input type="button" onclick="window.open('http://localhost:3000/register')" value="Login"></button>
以上内容将在新标签页中打开,从当前标签页重定向使用:
<input type="button" onClick="location.href='http://localhost:3000/register'" value="Login"></button>
如果您没有在本地运行应用程序,请将localhost替换为您的IP,希望这会有所帮助!