发送数据并保存在文本字段中

时间:2019-07-17 09:01:01

标签: javascript jquery html ajax

我有一个带有弹出窗口的主页。

<textarea class="form-control item"></textarea>
<button type="button" class="btn btn-primary" name="name">Send</button>

还有第二页。 (/结论/主要)

<textarea id="retro" style="height: 200px; width: 800px"></textarea>

我在窗口中输入文字并发送。窗口应关闭,文本应发送到第二页,文本应保存在“ textarea”字段中。即使他们关闭页面或重新加载,文本也应保留在第二页中。 此代码可以保存,但关闭页面后不保存

(function(){
    var textarea = document.getElementById('retro');
    if (localStorage.retro) 
    {
        textarea.value = localStorage.retro; 
    }
    textarea.onchange = function() 
    {
        localStorage.retro = this.value; 
    }
})();

从第一页发送到第二页

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 params2;
}

params = getParams();
name = unescape(params["name"]);
document.getElementById('retro').innerHTML = name;

1 个答案:

答案 0 :(得分:0)

围绕您要在此处执行的操作存在一些问题。所以我所做的分为两部分

  1. 在2页之间传递本地存储并进行访问。
  2. 解码URL中的参数并对其进行辅助

我做出的一些假设;

  1. 我已经注意到引导程序中的一些类,所以我假设您在页面上有jquery,并且您还可能知道如何使用它。
  2. 使用chrome进行测试

PART 1-在窗口之间传递本地存储

首先要注意的是,使用cookie库(js-cookie)或自己创建一个可以访问的库可能会更好。本地存储可能很不安全,具体取决于要在其中存储哪些数据。

通过这种方式,您走在正确的轨道上,只需要将事件侦听器添加到“输入”,因为我认为随后每次击键都会更新本地存储中的数据。

第1页

HTML

<textarea id="retro" class="form-control item"></textarea>
<button type="button" class="btn btn-primary" name="name">Send</button>

JS (我建议将其放在页面底部以便快速测试)

<script type="text/javascript">
    var textarea = document.getElementById('retro');
    textarea.addEventListener('input',function(){
        localStorage.setItem('retro', this.value);
    })
</script>

在chrome开发人员工具中,如果您观看可变的“ localstorage”,则在键入值时会看到此更改。

我在这里所做的是将事件侦听器绑定到文本区域,以便任何“输入”值都会改变,此外,我还在本地存储中设置了该项

第2页

HTML

<textarea id="retro" style="height: 200px; width: 800px"></textarea>

JS

<script type="text/javascript">
var textarea = document.getElementById('retro').value = localStorage.getItem('retro');
</script>

这里使用“ getItem”方法进行本地存储,然后可以将其从存储区域中取出,并作为文本区域的值输出。

显然是清除了缓存或本地存储,然后此值将消失。

PART 2-解码URL中的参数并对其进行辅助

$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=([^]*)').exec(window.location.href);
    if (results==null){
       return null;
    }
    else{
       return results[1] || 0;
    }
}

上面的此函数将为您提供任何想要的参数,这些参数来自我从here找到的url。这是使用jquery。

您将如何使用它

// example.com?param1=name&param2=&id=6
$.urlParam('param1'); // name
$.urlParam('id');        // 6
$.urlParam('param2');   // null

好吧,我希望这能在两个部分上回答您的问题,并为您提供进一步的帮助,如果我错过了任何内容,请添加任何评论,我将很乐意更新我的答案