本地服务器IIS上的html文件

时间:2018-03-12 11:59:51

标签: javascript html

我的本​​地IIS服务器上有多个.html文件。

例如:

  • Index.htm(默认页面)
  • page1.htm
  • page2.htm
  • page3.htm
  • page4.htm

每个超链接都相互连接所有页面。 喜欢从Index.htm到page1.htm,从page1.htm到page3.htm等......

我的问题如下: 一开始我会从index.htm开始,因为它是默认的html文件。由于超链接,我浏览文件。 假设最后访问过的页面是page3.htm。然后我关闭了所有东西。

下一次从最后一页(page3.htm)或任何其他页面开始,我该怎么办?

我搜索了很多,发现我的问题无法解决!我非常感谢javascript中的每个提示或代码!

2 个答案:

答案 0 :(得分:1)

<强> window.localStorage

这与cookie的操作方式类似,设置与浏览器一起存储,直到清除缓存或您编写脚本以删除值。

以下脚本显示如何设置和检索值 您需要做的就是使用switch语句来决定加载哪个页面,并使用window.location来设置您希望将用户分散到的页面的路径。

    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestAlwaysAuthorization()
    locationManager.startMonitoringSignificantLocationChanges()
    locationManager.startUpdatingLocation()

     func locationManager(_ manager: CLLocationManager, 
    didUpdateLocations locations: [CLLocation]) {
    userLocation = locations.last?.coordinate
    locationDelegate?.updateUserLocation(location: userLocation)
     }
function funPage(intPage){
  intPage = parseInt(intPage);  // this converts the string to an integer fro
  window.localStorage.setItem("page", intPage);
  var strPage;
  switch(intPage){
    case 1:
      strPage = "index";
      break;
    case 2:
      strPage = "2";
      break;
    case 3:
      strPage = "3";
      break;
    case 4:
      strPage = "4";
      break;
    case 5:
      strPage = "5";
      break;
    default:
      /*
        wont be used but its there incase you modify the code and its a back up.
        you could use switch (true) and test case (parseInt(strPageNo > 1) && parseInt(strPageNo < 6)
        and set strPage = strPageNo; but i have deliberatly coded it this way to allow you to set page
        names such as "help.html" instead of 6.html
      */
      strPage = "index";
    break;
  }
  
  window.location = strPage + ".html";
}


function funLoadPage(){
  var strPageNo = window.localStorage.getItem("page");
  if (typeof(strPageNo) == "undefined"){
    strPageNo = "1";
  }
  funPage(strPageNo);
}
document.addEventListener("DOMContentLoaded", funLoadPage, false);
footer{
  position: fixed;
  bottom: 30px ;
}

答案 1 :(得分:-1)

同意@DataCure,以及他忘记提及的内容。

首先 - HTTP是无状态协议,所以用简单的话来说你无法直接实现。现在的问题是当我们需要将一些信息从客户端传递给服务器时如何使用无状态协议。??

是的,我们有一些技术可以在http无状态协议中将一些值从客户端传递到服务器,最受欢迎的是cookies。因为无论何时从同一浏览器加载页面,如果浏览器本地存储中有任何cookie,它会抓取该特定站点的cookie,然后将该cookie传递给您向服务器发出的请求的标头。

最后,您可以在服务器上使用该cookie来执行某些操作。

现在问题是如何在客户端设置cookie(浏览器的本地存储),以便我们可以将它发送回服务器。通常我们从服务器发送来自服务器的响应头中的cookie,该cookie将驻留在客户端,并将按照上面的解释使用。

但正如您所说,您在服务器端使用纯HTML,所以直接您无法将cookie从服务器发送到客户端。但是,我们可以使用javascript在客户端创建cookie。 (can refer W3school link)。

但是因为你可以在客户端创建cookie,你在服务器端使用纯html ,你必须在cookie的基础上再向服务器发送一次调用。

  

document.cookie =&#34; CurrentPageName; expires = Thu,1970年1月1日00:00:00 UTC; path = /;&#34 ;;

然后您可以获取此值并在页面上重定向。