将数据从JS页面发送到没有表单或URL的HTML页面

时间:2016-08-02 17:14:50

标签: javascript html forms

我想将一个变量从JavaScript发送到另一个HTML页面并重定向到该页面,但是我不能使用forms,因为第一页完全是用JavaScript和.js文件所以我可以' t声明一个表格。我也无法使用URL,因为我的数据太大了。还有什么其他选择?我发现的每个教程都使用表单或URL。还有其他选择吗?

基于this answer,我使用了以下代码:

function post(array) {
    var method = "post"; 
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", "helloworld.html");

    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", "array");
    hiddenField.setAttribute("value", array);

    form.appendChild(hiddenField);

    document.body.appendChild(form);
    form.submit();
}

我在另一种方法中调用post(参数)。

它成功地重定向到helloworld.html,但是如何获得我传递的变量?

3 个答案:

答案 0 :(得分:0)

您可以通过JavaScript发出HTTP请求:

// jQuery
$.get("demo_test.asp", function(data, status){
        // do something
});

jQuery文档位于here

答案 1 :(得分:0)

您可以使用jQuery ajax API并通过POST请求发送数据。看更多: herehere

编辑:oops,我没有注意到你没有启用任何服务器端处理程序。在这种情况下,如果您不想使用表单,可以使用jQuery.param()处理get / url参数或使用某些路由启用库。

答案 2 :(得分:0)

您可以将数据保存在localStorage中,如果第二页位于同一个域中。数据必须是字符串。

第一页:

function sendData(){
    localStorage.setItem("data", data);
    location.href = "helloworld.html";
}

保存数据。

第二页:

function onLoad(){
    var data = storage.getItem("data");
}

阅读数据。

可选 您还可以创建一个JSON对象并使用函数JSON.stringify

保存它