批准的在同一网站上的页面之间导航的方法


Approved method to navigate between pages on same website

我研究了很多地方来找到这个问题的答案,但它们从来没有完全回答我的真正问题:在同一网站内移动到新页面的最佳/批准的方式是什么?我读到使用window.location是不好的,因为搜索引擎会认为你在隐瞒什么。但是,当我不想打开一个新窗口(window.open)时,我不知道该怎么做。我在链接和表单操作中使用href锚点(如果合适的话)。但当我有带onclick的菜单或按钮时,我需要其他东西。

以下是我的代码片段:

my javascript:(有一个选项注释)

function gotoCat() {
   var catcdF = document.catSelect.catcd.value; 
   <?php 
   echo "window.location.href='http://www.mysite.org".$pgmdir."services/busMenu.php?catF='+catcdF; ";
   /*
   echo "window.open('http://www.mysite.org".$pgmdir."services/busMenu.php?catF='+catcdF,'','resizable=1,scrollbars=1,toolbar=1,top=50,left=300,width=950,height=800,location=0'); ";
   */
   ?>
} 

表单中的动态SELECT列表(在PHP中):

   echo " <select name='catcd' id='catcd' size='8' onclick=gotoCat() > 'n"; 
             // display list of categories   
     if ($numcats == 0) { // print message text only
        echo "<option value='0' >".$catMsg."</option> 'n";
     }
     else {
        for ($i=1; $i<=$numcats; $i++) {
         $catcd_db = $catAry[$i][1];
         $catName_db = $catAry[$i][2];
         echo "<option value='".$catcd_db."'> ".$catName_db." </option> 'n";   
        }
     }
  echo "</select>";

所以,正如你所看到的,我只想要一种方法,允许用户进行选择,然后在选择后自动转到正确的网页。这并不总是在选择列表中。通常是在他们想要退出或出现错误时:

     if (mysqli_connect_errno()) { 
       echo "<br/> <p style='text-align:center;'> <button type='button' 
           class='buttonStyle' style='padding: 4px 20px;' value='Exit' ";
       echo "onClick='"window.location.href='http://www.mysite.org/services/catSelbus.php?rc=1&func=Rev''" > ";  
       echo "Exit </button></p> ";
    }

我不能使用"返回",因为他们需要转到上一页,而不是他们来自的表单。

因此,除非我的导航方法真的偏离了目标,否则我想我需要知道使用javascript onClick移动到同一网站的下一页的可接受方法。window.location可以吗?还是我应该用别的东西?

欢迎任何意见或建议!

要使用Javascript导航到另一个页面,请使用:

window.location.href = "url";

这就是它的做法,它没有错。


为了便于论证,可以创建一个隐藏链接并模拟点击它,但正如我所说,真的没有必要。

您可以使用php header('location')代替:

<form action="submit.php">
<input type="hidden" value="test" name="hidden1" />
<input type="submit" Value="Exit" ... />

submit.php

<?php
  if (isset($_POST['hidden1'])
  {
    header('Location: http://www.mysite.org/services/catSelbus.php?rc=1&func=Rev');
    exit;
  }
?>

关于header('Location ...');的更多信息:http://php.net/manual/en/function.header.php

使用select的值并通过$_POST变量获取该值,而不是隐藏值。