0

好的,这就是我需要做的。不确定该怎么做。我有一个运行 index.php 的 php 页面,它是我的主页,它加载并引入 menu.php 和其他一些子文件。所以这是我的问题。我有一个用 java 编写的下拉菜单,然后我还链接了一个 Jquery 脚本来生成页面的标题。发生的事情是,当我单击菜单中的链接时,它会显示标题一分钟然后消失,因为它进入了一个新页面。如果我添加一个 return false 它会停止并起作用,但当然不会将您转发到新页面。所以这是我的问题。我需要设置一个变量 im 假设或其他东西来保存单击的值并将其带到新页面,我不知道该怎么做。这是我的菜单代码。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>


  <link rel="stylesheet" type="text/css" href="main.css" />
  <link rel="stylesheet" type="text/css" href="css/default.css">
  <link rel="stylesheet" type="text/css" href="css/css-slider.css">
  <script type="text/javascript" src="Scripts/jquery-1.7.1.js"></script>
    <script src="css/active.js" type="text/javascript">
  </script> 
    <script src="css/drop1.js" type="text/javascript">
  </script> 

  </script>


<!--Main Navigation Start -->

  <div id="nav" class="nav">
  <ul id="sddm">
  <li><a class="navigation" value="home" id="Home" href="index.php" onMouseOver="mopen('m1')" onMouseOut="mclosetime()">Home</a>
  <div id="m1" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
  </div>
  </li>
  <li><a class="navigation" id="Station History" href="station_history.php" onMouseOver="mopen('m2')" onMouseOut="mclosetime()">Station History</a>
  <div id="m2" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
  </div>
  </li>
  <li>
  <a class="navigation" id="Apparatus" href="Apparatus.php" onMouseOver="mopen('m3')" onMouseOut="mclosetime()">Apparatus</a>
  <div id="m3" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
  <a class="navigation" id="Truck History" href="truck_history.php">Truck History</a> 
  </div>
  </li>
  <li>
  <a class="navigation" id="Photo Gallery" href="photos.php" onMouseOver="mopen('m4')" onMouseOut="mclosetime()">Photos</a>
  <div id="m4" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
  </div>
  </li>
  <li>
  <a class="navigation" id="News & Events" href="news_events.php" onMouseOver="mopen('m5')" onMouseOut="mclosetime()">News & Events</a>
  <div id="m5" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
  </div>
  </li>
  <li>
  <a class="navigation" id="Station Members" href="Station_members.php" onMouseOver="mopen('m6')" onMouseOut="mclosetime()">Station Members</a>
  <div id="m6" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
  </div>
  </li>
  <li>
  <a class="navigation" id="Education" href="education.php" onMouseOver="mopen('m7')" onMouseOut="mclosetime()">Education</a>
  <div id="m7" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
  <a class="navigation" id="Station Tours" href="">Station Tours</a>
  <a class="navigation" id="Fire Extinguisher" href="">Fire Extinguisher</a>
  <a class="navigation" id="First Aid & CPR" href="">First Aid & CPR</a>
  <a class="navigation" id="Smoke Alarms" href="">Smoke Alarms</a> 
  </div>
  </li>
  <li>
  <a class="navigation" id="Contact Us" href="contactus.php" onMouseOver="mopen('m8')" onMouseOut="mclosetime()">Contact Us</a>
  <div id="m8" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> </div>
  </li>
  </ul>
  </div>
  </div>

</body>
</html>

<!DOCTYPE html>

这是我的jQuery

//navigation 

$(document).ready(function () {

    //var mname = ($(this).attr('id'));
    $("a.navigation").click(function () {
        //alert($(this).attr('id'));
        $("span#title").html($(this).attr('id'));


    })
});

这是我的下拉菜单

      <!--
  var timeout         = 500;
  var closetimer    = 0;
  var ddmenuitem      = 0;

// open hidden layer
function mopen(id)
{ 
  // cancel close timer
  mcancelclosetime();

  // close old layer
  if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';

  // get new layer and show it
  ddmenuitem = document.getElementById(id);
  ddmenuitem.style.visibility = 'visible';

}
// close showed layer
function mclose()
{
  if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

// go close timer
function mclosetime()
{
  closetimer = window.setTimeout(mclose, timeout);
}

// cancel close timer
function mcancelclosetime()
{
  if(closetimer)
  {
    window.clearTimeout(closetimer);
    closetimer = null;
  }
}

// close layer when click-out
document.onclick = mclose; 
// -->

由于某种原因,我完全不知道如何做到这一点,并且非常感谢您的帮助。

4

2 回答 2

2

全局变量仅在给定页面的生命周期内持续存在,因此它们不会跨越多个页面。因此,要将数据从一个页面传递到另一个页面,您必须将数据存储在浏览器或服务器中的某个位置,以便后续页面可以检索它。

您在浏览器中存储或传递数据的选项是:

  1. 将数据存储在 cookie 中,然后在后续页面上从 cookie 中检索它。
  2. 将数据存储在本地存储中,然后在后续页面上从本地存储中检索。
  3. 转到下一页时,将要访问的 URL 中的数据编码(作为查询参数或哈希值,然后在下一页中使用 javascript 从 URL 中检索该数据。

选项 1 和 2 最适合需要访问大量页面的数据。所有浏览器的所有版本都支持 Cookie(尽管有时用户会阻止它们)。本地存储是一个更简洁的 API,在所有现代浏览器中都受支持,但在某些较旧的浏览器中不受支持。每个域可以存储的数据量在 cookie 中比本地存储更受限制。

请记住,选项 1 和 2 仅适用于同一域中的页面。无法在存储数据的域之外访问 Cookie 和本地存储。

有关读取/写入 cookie 的信息,请参阅MDN 上的这篇文章。

有关读/写本地存储的信息,请参阅MDN 上的这篇文章,包括在本地存储不可用时回退到 cookie 的兼容性库。

于 2013-03-22T00:56:26.307 回答
0

使用饼干!这是一些Javascript:

function setCookie(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}
function getCookie(c_name){
    var i,x,y,ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++)
    {
      x = ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
      y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
      x = x.replace(/^\s+|\s+$/g,"");
      if (x == c_name)
        {
        return unescape(y);
        }
    }

}

于 2013-03-22T00:42:22.567 回答