Javascript 我如何允许我的窗口打开并且有用户输入的文本?
我希望用户能够打开网站,会有一个提示,要求用户告诉他们自己和他们输入的文本显示在一个新窗口Javascript 我如何允许我的窗口打开并且有用户输入的文本?,javascript,Javascript,我希望用户能够打开网站,会有一个提示,要求用户告诉他们自己和他们输入的文本显示在一个新窗口 var text=prompt(“告诉我们一些关于你自己的事情”); 函数newWindow(){ var OpenWindow=window.open(“,”slayyyter“,”高度=300,宽度=300”); } 函数showText(){ OpenWindow.document.write(文本); } A. 您需要使用浏览器的工具和JavaScript控制台,单击按钮时,控制台会显示未定义
var text=prompt(“告诉我们一些关于你自己的事情”);
函数newWindow(){
var OpenWindow=window.open(“,”slayyyter“,”高度=300,宽度=300”);
}
函数showText(){
OpenWindow.document.write(文本);
}
A.
您需要使用浏览器的工具和JavaScript控制台,单击按钮时,控制台会显示未定义OpenWindow。这是因为范围。OpenWindow只存在于您定义它的地方-在函数newWindow中。要在其他函数中访问它,请在外部声明它(就在var text
下面)。您可以将其保留为已定义但为空,然后稍后将其分配。所以在“text”的声明下只需放入var OpenWindow代码>。然后在newWindow中从OpenWindow前面删除“var”。您可能还有其他问题,因为我没有测试代码,但这是主要问题
提示:
- 了解范围
- 阅读浏览器调试工具,尤其是JS控制台
- 在或类似的地方做你的教程,当你寻求帮助时,你可以在这里分享例子
恐怕您想要实现的目标并不那么容易,因为无法直接告诉新的浏览器窗口您在第一个窗口中写了什么
但是你可以这样做
- 提示输入一些文本
- 将输入的文本保存到浏览器的本地存储中
- 使用window.Open()打开相同的html页面,但在url中附加一个查询字符串,例如?id=new
- 如果使用或不使用查询字符串调用站点,请通过代码进行区分。如果没有查询字符串,则显示提示对话框;如果有查询字符串,则从localStorage获取文本并将其写入浏览器窗口
使用此代码段并将其另存为test.html
<html>
<head>
<script type="text/javascript">
var urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('id') == null) {
var text = prompt("Tell us something about yourself");
localStorage.setItem('myText', text);
window.open("test.html?id=new", "slayyyter");
} else {
document.write("You have written: " + localStorage.getItem('myText'));
}
</script>
</head>
</html>
var urlParams=新的URLSearchParams(window.location.search);
if(urlParams.get('id')==null){
var text=prompt(“告诉我们一些关于你自己的事情”);
setItem('myText',text);
open(“test.html?id=new”、“slayyyter”);
}否则{
document.write(“您已经编写:”+localStorage.getItem('myText'));
}
作为旁注-window.open()接受url作为第一个参数。您不能简单地输入一些文本或传递包含文本的字符串-它必须是有效的资源,例如图像、html文件、php等等。代码中有三个错误。打开web控制台(通常按F12键)以查看其中一些控制台的消息
提示字符串
"Tell us something about
yourself"
有一个需要移除的线路馈线
newWindow
中声明的变量OpenWindow
不在showText
中的代码范围内。如果全局声明OpenWindow
,请删除newWindow
中变量名之前的var
,以防止全局变量被局部声明隐藏
newWindow
需要调用
下面是一个返回窗口对象而不是将其保存在全局变量中的示例:
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>Test</title>
<head>
<script>
"use strict";
var text = prompt("Tell us something about yourself");
function newWindow() {
return window.open("", "slayyyter",
"height=300 , width=300");
}
function showText() {
var openWindow = newWindow();
newWindow().document.write(text);
newWindow.close();
}
</script>
</head>
<body>
<button onclick="showText()"> A </button>
</body>
</html>
试验
“严格使用”;
var text=prompt(“告诉我们一些关于你自己的事情”);
函数newWindow(){
返回窗口。打开(“,”slayyter“,
“高度=300,宽度=300”);
}
函数showText(){
var openWindow=newWindow();
newWindow().document.write(文本);
newWindow.close();
}
A.
注
document.write
对于学习JavaScript练习很有用,但是在写入文档后,调用document.close
来完成文档-它会停止已打开窗口中的窗口加载指示器
- 详细信息请参阅“HTML5文档类型声明”、“在HTML中声明字符集”和“何时在JavaScript中使用严格模式”
已执行此操作,但仍无法正常工作。当我点击按钮时,新窗口将不会弹出。故意将URL值设为空字符串,相当于传递一个URL“about:blank”。