javascript重定向无法在同一个标​​签中打开?

时间:2014-01-16 22:17:26

标签: javascript html web

我过去几天一直在创建网页,此网页中的概念是用户在textarea中输入自定义文字。 然后将使用javascript处理textarea的值。 if(x=="hello"),然后javascript必须将用户重定向到另一个网页,但是在同一个标​​签页和同一个窗口中。 不幸的是,这不起作用。我的意思是javascript将网页重定向到另一个网址,但它不在同一个标​​签中。

请允许任何人帮助我修复我的错误吗?

注意:请不要用jQuery给我答案,因为我不知道如何使用它

HTML CODE

<!DOCTYPE HTML>
<html>
   <head>
      <script type="text/javascript" src="scripting1.js"></script>
      <style type"text/css">
             .inputtext
             {
             border:5px double #4f2d05;
             width:1378px;
             height:690px;
             background-color:#000000;
             font-family:monospace;
             font-size:28px;
             color:#00ff00;
             resize:none;
             }
             textarea:focus{outline: 0}
      </style>
   </head>
   <body background="camouflage.jpg">
      <table name="table" align="center">
         <tr>
            <td>
               <img src="header.png" />
            </td>
         </tr>

         <tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr>
         </tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
         <tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr>
         </tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
         <tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>
         <tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr>

         <form name="form1">
            <tr>
               <td>
                  <div align="center">
                     <textarea 
                        class="inputtext" 
                        id="myTextarea" 
                        name="text1" 
                        align="center" 
                        placeholder="Enter command here....">
                     </textarea>
                  </div>
               </td>
            </tr>

            <tr>
               <td>
                  <input 
                     type="submit" 
                     name="submit" 
                     OnSubmit="myFunction();"
                     >
               </td>
            </tr>
         </form>
      </table>
   </body>
</html>

JAVASCRIPT CODE(外部.js文件和html链接到它)

function myFunction(){
   var x = document.getElementById("myTextarea").value;
   if (x == "hello"){
      window.open('http://google.com/'
   }, '_self);
   }

   else{alert('ok i knew it'); }
}

3 个答案:

答案 0 :(得分:3)

而不是

window.open('http://google.com/','_self);

尝试

location.href = "http://google.com/";

答案 1 :(得分:1)

您的重定向代码错误,请尝试以下操作:

Edit

以下是分解为单独文件的代码。为了让它运行,只需将所有文件放入站点目录的根目录即可。如果您移动它们或更改其名称,请务必在.html文件中更改它们的位置。

请注意,仅仅因为您将JavaScript移动到单独的.js文件,并不意味着“hello”对用户是隐藏的。这只意味着他们必须导航到单独的js页面才能找到它。为了真正隐藏它,您必须将用户输入发送到服务器,验证它并发送验证响应。

<强> redirector.js

function myFunction() {
   var x = document.getElementById("myTextarea").value;
   if (x === "hello") {
      document.location.href = "http://www.google.com";
      return false;
   }
   else {
      alert('ok i knew it');
      return false;
   }
}

<强> index.css

#container{
   text-align: center;
}
.inputtext{
   border: 5px double #4f2d05;
   width: 1378px;
   height: 690px;
   background-color: #000000;
   font-family: monospace;
   font-size: 28px;
   color: #00ff00;
   resize: none;
}
textarea:focus{
   outline: 0
}

<强> indexl.html

<!DOCTYPE HTML>
<html>
   <head>
      <title>Terminal</title>
      <link rel="stylesheet" href="index.css">
      <script src="redirector.js"></script>
   </head>
   <body>
      <div id="container">
         <form name="form1" onsubmit="return myFunction();">
            <div>
               <textarea 
                  class="inputtext" 
                  id="myTextarea" 
                  name="text1" 
                  placeholder="Enter command here...."></textarea>
            </div>
            <input 
               type="submit" 
               name="submit">
         </form>
      </div>
   </body>
</html>

答案 2 :(得分:0)

请尝试使用window.location.hrefwindow.open打开另一个窗口

window.location.href ='http://google.com/'