Javascript 将数据从一个HTML文件传输到另一个HTML文件
我不熟悉HTML和JavaScript,我尝试从一个HTML文件中提取设置的内容,并通过JavaScript将其显示到另一个HTML文件中 以下是我到目前为止所做的测试:Javascript 将数据从一个HTML文件传输到另一个HTML文件,javascript,html,Javascript,Html,我不熟悉HTML和JavaScript,我尝试从一个HTML文件中提取设置的内容,并通过JavaScript将其显示到另一个HTML文件中 以下是我到目前为止所做的测试: testing.html function testJS() { var b = document.getElementById('name').value, url = 'http://path_to_your_html_files/next.html?name=' + encodeURICompon
testing.html
function testJS() {
var b = document.getElementById('name').value,
url = 'http://path_to_your_html_files/next.html?name=' + encodeURIComponent(b);
document.location.href = url;
}
test.html
->ads.js
(将从test.html中提取值并设置为next.html)->next.html
设置页面间持久的全局变量的老式方法是在Cookie中设置数据。现代的方式是使用本地存储,它具有良好的浏览器支持(IE8+、Firefox 3.5+、Chrome 4+、Android 2+、iPhone 2+)。使用localStorage与使用阵列一样简单:
localStorage["key"] = value;
... in another page ...
value = localStorage["key"];
您还可以附加事件处理程序以侦听更改,尽管浏览器之间的事件API略有不同 请尝试以下代码:
在testing.html中
function testJS() {
var b = document.getElementById('name').value,
url = 'http://path_to_your_html_files/next.html?name=' + encodeURIComponent(b);
document.location.href = url;
}
在next.html中:
window.onload = function () {
var url = document.location.href,
params = url.split('?')[1].split('&'),
data = {}, tmp;
for (var i = 0, l = params.length; i < l; i++) {
tmp = params[i].split('=');
data[tmp[0]] = tmp[1];
}
document.getElementById('here').innerHTML = data.name;
}
window.onload=函数(){
var url=document.location.href,
params=url.split('?')[1]。split('&'),
数据={},tmp;
对于(变量i=0,l=params.length;i
描述:javascript不能在不同的页面之间共享数据,我们必须使用一些解决方案,例如URL get参数(在我的代码中我是这样使用的)、cookies、localStorage等。
将name参数存储在URL(?name=…)和next.html parse URL中,并从prev页面获取所有参数
另外,我是一个非英语母语的人,请你纠正我的信息,如果必要的话假设你在浏览器环境中谈论这个js(不像nodejs这样的其他人),不幸的是,我认为你尝试做的是不可能的,因为这不是它应该工作的方式 Html页面通过HTTP协议传递到浏览器,这是一种“无状态”协议。如果仍然需要在页面之间传递值,可以有3种方法:
窗口
对象在next.html中检索它们jquery load function您只需使用
window.location.href
发送数据,首先将要从testing.html
发送的值存储在脚本标记中,比如
<script>
var data = value_to_send
window.loaction.href="next.htm?data="+data
</script>
var数据=要发送的值
window.loaction.href=“next.htm?data=“+数据
这是使用JavascriptlocalStorage类通过get请求发送的,您可以使用浏览器的默认本地存储来保存(键、值)对,然后在需要使用键的任何页面上检索这些值。 示例- Pageone.html-
<script>
localStorage.setItem("firstname", "Smith");
</script>
<script>
var name=localStorage.getItem("firstname");
</script>
setItem(“firstname”、“Smith”);
Pagetwo.html-
<script>
localStorage.setItem("firstname", "Smith");
</script>
<script>
var name=localStorage.getItem("firstname");
</script>
var name=localStorage.getItem(“firstname”);
以下是使用html将值从一个页面传递到另一个页面的示例代码。这里,来自page1的数据被传递到page2,并使用javascript进行检索
1)页面1.html
<!-- Value passing one page to another
Author: Codemaker
-->
<html>
<head>
<title> Page 1 - Codemaker</title>
</head>
<body>
<form method="get" action="page2.html">
<table>
<tr>
<td>First Name:</td>
<td><input type=text name=firstname size=10></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input type=text name=lastname size=10></td>
</tr>
<tr>
<td>Age:</td>
<td><input type=text name=age size=10></td>
</tr>
<tr>
<td colspan=2><input type=submit value="Submit">
</td>
</tr>
</table>
</form>
</body>
</html>
<!-- Value passing one page to another
Author: Codemaker
-->
<html>
<head>
<title> Page 2 - Codemaker</title>
</head>
<body>
<script>
function getParams(){
var idx = document.URL.indexOf('?');
var params = new Array();
if (idx != -1) {
var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
for (var i=0; i<pairs.length; i++){
nameVal = pairs[i].split('=');
params[nameVal[0]] = nameVal[1];
}
}
return params;
}
params = getParams();
firstname = unescape(params["firstname"]);
lastname = unescape(params["lastname"]);
age = unescape(params["age"]);
document.write("firstname = " + firstname + "<br>");
document.write("lastname = " + lastname + "<br>");
document.write("age = " + age + "<br>");
</script>
</body>
</html>
第1页-代码生成器
名字:
姓氏:
年龄:
2)页面2.html
<!-- Value passing one page to another
Author: Codemaker
-->
<html>
<head>
<title> Page 1 - Codemaker</title>
</head>
<body>
<form method="get" action="page2.html">
<table>
<tr>
<td>First Name:</td>
<td><input type=text name=firstname size=10></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input type=text name=lastname size=10></td>
</tr>
<tr>
<td>Age:</td>
<td><input type=text name=age size=10></td>
</tr>
<tr>
<td colspan=2><input type=submit value="Submit">
</td>
</tr>
</table>
</form>
</body>
</html>
<!-- Value passing one page to another
Author: Codemaker
-->
<html>
<head>
<title> Page 2 - Codemaker</title>
</head>
<body>
<script>
function getParams(){
var idx = document.URL.indexOf('?');
var params = new Array();
if (idx != -1) {
var pairs = document.URL.substring(idx+1, document.URL.length).split('&');
for (var i=0; i<pairs.length; i++){
nameVal = pairs[i].split('=');
params[nameVal[0]] = nameVal[1];
}
}
return params;
}
params = getParams();
firstname = unescape(params["firstname"]);
lastname = unescape(params["lastname"]);
age = unescape(params["age"]);
document.write("firstname = " + firstname + "<br>");
document.write("lastname = " + lastname + "<br>");
document.write("age = " + age + "<br>");
</script>
</body>
</html>
第2页-代码生成器
函数getParams(){
var idx=document.URL.indexOf(“?”);
var params=新数组();
如果(idx!=-1){
var pairs=document.URL.substring(idx+1,document.URL.length).split('&');
对于(var i=0;i嗨,我将把这个留在这里cz,由于限制,我无法发表评论,但我发现AlexFitiskin的答案非常完美,但需要一个小的修正
document.getElementById('here').innerHTML = data.name;
这需要改为
document.getElementById('here').innerHTML = data.n;
我知道五年后,帖子的所有者不会觉得它有什么重要性,但这是为将来可能遇到的人准备的。我用它来设置每页的个人资料图像
在第一页上,将值设置为:
localStorage.setItem("imageurl", "ur image url");
或在第二页上获取值为:
var imageurl=localStorage.getItem("imageurl");
document.getElementById("profilePic").src = (imageurl);
查看jQuery的load()
函数。在一个不相关的注释中,您有一个输入错误:scr=“asd.js”
应该是src=“asd.js”
@LieRyan感谢您的更正。实际上,您可以通过使用EHTML实现这一点:我将通过内部JS或外部JS实现这一点?@newbie:没关系,您可以将您的JavaScript放入HTML本身,或者从其他地方链接,没关系。最简单的解决方案:)您可以使用外部JS,例如,test.JS
。在此文件中包括两个函数:testJS
(代码块1)和onLoad
(代码块2,但将window.onLoad=function
替换为function onLoad
)。在testing.html
bindtestJS
函数中单击操作按钮(onClick=“testJS()”
)和在next.html
bindonLoad
函数到body onLoad动作(onLoad=“onLoad”
)你真是个天才。哪种选择更适合通过考试data@ShailendraKushwahCookie,因为本地存储在生产中并不方便,在URL中发布也不安全,数据可以读取和访问。发布可以通过表单提交或ajax完成。如何通过