使用javascript访问保存在另一页上的一个页面上的用户输入值

阿布巴卡尔三宝

我试图从一个页面上获取用户输入值,在另一个页面上,例如,在我的 HTML page1 上,我有:-

<input type="text" id="someName" placeholder="enter name"/>
<input type="submit" id="submitBtn" value="submit">

在脚本中,我有:-

let Btn = document.querySelector('#submitBtn');
Btn.onclick = function() {
    let name = document.querySelector('#someName').value;
}

现在我要做的是name从其他 HTML 页面(不是输入输入的页面)访问变量(携带用户输入的值)。我知道这是数据库用来存储值的地方,但是在不了解使用 db 的情况下,我想知道是否有仅使用客户端 Javascript 的解决方法。

零零

域和 Web 存储

Web 存储在域的每个页面上共享。因此,如果您将数据保存到localStoragesessionStorage,您可以从不同页面上的相同 Web 存储中获取相同数据,只要它们位于同一域(也包括子域,请参见下面的示例)。

同一域中的页面示例:

  • https://www.example.com/index.htmlhttps://www.example.com/page1.html共享相同的网络存储。

不在同一域中的页面示例:

  • https://www.example.com/index.htmlhttps://stackoverflow.com/ 共享相同的网络存储。

  • https://app.example.com/index.htmlhttps://www.example.com/page1.html 共享相同的网络存储。


解释

由于 SO 安全措施,以下演示无法正常工作,请查看此Plunker该演示有:

  • 2 页:index.htmlpage.html

  • index.html<form>将数据发送到服务器,并在复位的页面submit事件发生。数据将保存到localStorage。

  • 有一个<iframe>to page1.html它有一个链接,所以你可以直接跳转到它,它有一个Get Data按钮。该按钮可从<iframe>以及当您在页面上时单击单击后,它将从 localStorage 检索数据,从而证明 Web 存储在共享同一域的页面之间共享。

  • HTMLFormControlsCollection API<form>可以收集和引用及其表单控件


演示

普朗克

详细信息在演示中评论。
注意:代码段不起作用,请查看Plunker

/*
The following declarations are done by using the
HTMLFormControlsCollection API
*/
// Exists on both pages
var form = document.forms[0];
// NodeList of all of the form controls
var ui = form.elements;
// <input> on index.html
var data = ui.data;
// Exists on both pages
var out = ui.out;
// Button on page1.html
var btn = ui.btn;

// Register the 'submit' event on the <form>
form.addEventListener('submit', saveData);

// Register the 'click' event on the button on page1.html
btn.addEventListener('click', getData);

// Callback called on submit on index.html
function saveData(e) {

  /* 
  Prevent the <form> from sending data to server and
  resetting itself
  */
  e.preventDefault();

  // Get the data from <input> on index.html
  var str = data.value;

  // Save data to localStorage
  localStorage.setItem('data', JSON.stringify(str));

  // Notify user
  out.innerHTML = `<i><b>"${str}"</b></i> is stored in localStorage under the key of "data"`;
}

// Callback called when button is clicked on page1.html
function getData(e) {

  // Get data from localStorage
  var stored = JSON.parse(localStorage.getItem('data'));

  // Notify user
  out.innerHTML = `<i><b>"${stored}"</b></i> has been retrieved from localStorage`
}
html {
  font: 400 16px/1.5 Consolas;
}

body {
  font-size: 1rem;
}

label,
input,
output {
  font: inherit;
  display: inline- block;
}

fieldset {
  width: fit-content;
}

.title {
  font-size: 1.1rem;
}

.red {
  color: tomato;
}

#out {
  display: table-cell;
  min-width: 260px;
  padding: 5px;
  height: 24px;
}

legend,
label,
[type='button'] {
  font-variant: small-caps;
}

iframe {
  display: block;
  overflow: scroll;
}
<!--index.html-->

<form id='ui'>
  <fieldset>
    <legend class='title'>Data Share</legend>
    <label for='data'>Data: </label>
    <input id='data' name='data' value='default string'>
    <input type='submit'><br>
    <output id='out' for='data'></output>
  </fieldset>
</form>
<p>Below is an iframe to a separate page.</p>
<iframe src='page1.html'></iframe>
<script src="lib/script.js"></script>

<!--page1.html-->

<form id='ui'>
  <fieldset>
    <legend class='title'><b><a href='page1.html' target='_blank' class='red'>Page 1</a></b></legend>
    <input id='btn' type='button' value='Get Data'>
    <output id='out'></output>
  </fieldset>
</form>

<script src="lib/script.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在同一页面上的另一个Ascx控件中访问一个Ascx控件中的值

来自分类Dev

Bootstrap Modal显示在一个页面上,而不显示在另一页面上?

来自分类Dev

在同一页面上的另一个选项卡上运行php文件,而无需提交表单值

来自分类Dev

使用Ajax在另一页上显示输入值

来自分类Dev

使用Ajax在另一页上显示输入值

来自分类Dev

链接到同一页面上的另一个部分

来自分类Dev

Javascript在另一页面上无法正常工作

来自分类Dev

Javascript代码重定向到同一页面上的一个部门

来自分类Dev

Javascript代码重定向到同一页面上的一个部门

来自分类Dev

从一个滑动网格拖放到同一页面上的另一个

来自分类Dev

使用ajax将值从一个PHP页面传递到另一页面

来自分类Dev

如何使用javascript将数据从一个html页面传递到另一页面?

来自分类Dev

如何使用javascript将数据从一个html页面传输到另一页面

来自分类Dev

如何从一个页面获取JavaScript并在另一页面的php中使用它

来自分类Dev

从一个HTML页面获取<div>并在另一页面上弹出显示?

来自分类Dev

PHP从一个页面处理HTTP请求,然后在另一页面上显示

来自分类Dev

使用.Value在页面上设置范围=在另一页面上的范围

来自分类Dev

在同一页面上的两个输入(差异ID)上的两个自动完成

来自分类Dev

在同一页面上的两个输入(差异ID)上的两个自动完成

来自分类Dev

从用户处获取输入,并在同一页面上显示相同的输入

来自分类Dev

如何在同一页面上的多个按钮上打开一个Bootstrap模式?

来自分类Dev

如何使用JavaScript或JQuery在PHP + MySQL的同一页面上不点击提交按钮的情况下将2个文本框输入值结果输入到第三个文本框?

来自分类Dev

汤在一个IMBD页面上有效,但在另一页面上无效。怎么解决?

来自分类Dev

在同一页面上将用户输入显示为评论

来自分类Dev

调试下拉菜单并在同一页面上显示用户表单输入

来自分类Dev

如何在同一页面上使用锚点选项卡去一个divdiv?

来自分类Dev

js:在同一页面上显示保存在localStorage中的文本

来自分类Dev

是什么导致一个D3.js图表与同一页面上的另一个图表发生冲突?

来自分类Dev

是什么导致一个D3.js图表与同一页面上的另一个图表发生冲突?

Related 相关文章

  1. 1

    如何在同一页面上的另一个Ascx控件中访问一个Ascx控件中的值

  2. 2

    Bootstrap Modal显示在一个页面上,而不显示在另一页面上?

  3. 3

    在同一页面上的另一个选项卡上运行php文件,而无需提交表单值

  4. 4

    使用Ajax在另一页上显示输入值

  5. 5

    使用Ajax在另一页上显示输入值

  6. 6

    链接到同一页面上的另一个部分

  7. 7

    Javascript在另一页面上无法正常工作

  8. 8

    Javascript代码重定向到同一页面上的一个部门

  9. 9

    Javascript代码重定向到同一页面上的一个部门

  10. 10

    从一个滑动网格拖放到同一页面上的另一个

  11. 11

    使用ajax将值从一个PHP页面传递到另一页面

  12. 12

    如何使用javascript将数据从一个html页面传递到另一页面?

  13. 13

    如何使用javascript将数据从一个html页面传输到另一页面

  14. 14

    如何从一个页面获取JavaScript并在另一页面的php中使用它

  15. 15

    从一个HTML页面获取<div>并在另一页面上弹出显示?

  16. 16

    PHP从一个页面处理HTTP请求,然后在另一页面上显示

  17. 17

    使用.Value在页面上设置范围=在另一页面上的范围

  18. 18

    在同一页面上的两个输入(差异ID)上的两个自动完成

  19. 19

    在同一页面上的两个输入(差异ID)上的两个自动完成

  20. 20

    从用户处获取输入,并在同一页面上显示相同的输入

  21. 21

    如何在同一页面上的多个按钮上打开一个Bootstrap模式?

  22. 22

    如何使用JavaScript或JQuery在PHP + MySQL的同一页面上不点击提交按钮的情况下将2个文本框输入值结果输入到第三个文本框?

  23. 23

    汤在一个IMBD页面上有效,但在另一页面上无效。怎么解决?

  24. 24

    在同一页面上将用户输入显示为评论

  25. 25

    调试下拉菜单并在同一页面上显示用户表单输入

  26. 26

    如何在同一页面上使用锚点选项卡去一个divdiv?

  27. 27

    js:在同一页面上显示保存在localStorage中的文本

  28. 28

    是什么导致一个D3.js图表与同一页面上的另一个图表发生冲突?

  29. 29

    是什么导致一个D3.js图表与同一页面上的另一个图表发生冲突?

热门标签

归档