Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据从一个HTML文件传输到另一个HTML文件_Javascript_Html - Fatal编程技术网

Javascript 将数据从一个HTML文件传输到另一个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

我不熟悉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=' + 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种方法:

  • 会话Cookies
  • HTML5本地存储
  • 在url中发布变量,并通过
    窗口
    对象在next.html中检索它们
  • jQuery是一个js库,它简化了编程。因此,我建议先使用jQuery rathar,然后使用js。在这里,我只是在submit button click事件中获取输入元素(id=name)的值,然后加载所需的页面(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
    bind
    testJS
    函数中单击操作按钮(
    onClick=“testJS()”
    )和在
    next.html
    bind
    onLoad
    函数到body onLoad动作(
    onLoad=“onLoad”
    )你真是个天才。哪种选择更适合通过考试data@ShailendraKushwahCookie,因为本地存储在生产中并不方便,在URL中发布也不安全,数据可以读取和访问。发布可以通过表单提交或ajax完成。如何通过