Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何允许我的窗口打开并且有用户输入的文本?_Javascript - Fatal编程技术网

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”。