javascript - 打开一个新选项卡,填写相同的表单数据
问题描述
我使用 Django 开发了一个 Web 应用程序。在一个页面中有一个表格,一旦填写,一个重复按钮应该打开页面的一个新选项卡,并填充相同的数据。
我已经完成了新标签 js 功能,但我不知道如何使新标签中的表单填充上一个标签中的数据(在我的情况下,相同的 isbn 填充在前一个标签中)。
<form>
<label> iSBN: </label> <input type="text" id="iSBN" name="iSBN"><br>
</form>
<button onclick="Duplicate()">Duplicate</button><br>
{% endblock %}
<script>
{% block script %}
function goBack() {
window.history.back();
}
function Duplicate(){
document.getElementById("demo").innerHTML = "Duplicate Copy for editing";
window.open(
'/new-content-checklist/',
'_blank' // <- This is what makes it open in a new window.
);
}
{% endblock %}
</script>
解决方案
您可以从url 参数传递数据,然后在另一个选项卡中您可以访问 url 参数并像这样填写表单。
// const url = new URL(window.location);
const url = new URL('http://example.com/new-form.html?isbn=12345')
const previousData = url.searchParams.get('isbn')
console.log(previousData)
//output: 12345
一个工作演示代码:jsFiddle
简而言之:
const data = new URL(window.location).searchParams.get('isbn')
推荐阅读
- python - 在 Django 中使用多对一关系的正确方法是什么
- postgresql - 在其他函数中执行函数
- swift - 在 SwiftUI 视图中展开可选
- c# - 为什么 .net 的 StringFormat.SetDigitSubstitution 方法根本不起作用?
- java - 启动jboss服务器时未构建maven依赖项
- graph - 如何在无向图中使用 BFS 处理循环检测中两个顶点之间的平行边?
- java - Jboss EAP 6 模块热部署
- laravel - 似乎无法加载 vuejs 组件,TypeError: "this.kitChens.find(...) is undefined"
- upload - 框上传文件:“API 上传不包含文件部分”错误
- python - 如何在不匹配包含相同字符的字段的情况下查找和更改固定长度记录中的条目?前任。“史密斯”在史密瑟斯是真实的