0

我有一个 javascript 函数,当用户单击链接时,我会使用它显示一些内容。

function showContent(filename){
  var oldcontent = $('#content').html();
  var srcUrl = getSourceUrl(filename);
  $('#content').html(oldcontent + '<iframe style="width:100%;height=100%;display:block;" src="'+srcUrl+'" />');
}

由于内容已加载到 IFrame 中,因此 URL 不会更改,我无法返回链接使用浏览器后退按钮的上一页。我是一个新手,我试图做这样的事情(愚蠢的实验)。即在 url 上附加一个“#page2”,但是当用户点击后退按钮时,什么也没有发生。

var oldcontent = $('#content').html();
var srcUrl = getSourceUrl(filename);
location.href = location.href + '#page2';
$('#content').html(oldcontent + '<iframe style="width:100%;height=100%;display:block;" src="'+srcUrl+'" />');

谁能告诉我这有什么问题以及如何启用后退按钮功能?

4

1 回答 1

0

尝试这个:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Hash Test</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  </head>
  <body>
    <div id='message-container'></div>
  </body>
  <script>
    var messages = ["Hello. Click anywhere on the page.", "How are you?", "I hope you're fine.", "Have a nice day and hit the back button."];
    var currentMessage = 0;
    var lastMessage = messages.length - 1;

    $(document).click(function() {
      nextMessage();
    });

    function nextMessage() {
      if (currentMessage < lastMessage) {
        currentMessage++;
        updateHash();
      }
    }

    function displayMessage() {
      $("#message-container").text(messages[currentMessage]);
    }

    function updateHash() {
      window.location.hash = "#message" + currentMessage;
    }

    $(window).on("hashchange", function() {
      if (/message\d+/.test(window.location.hash)) {
        currentMessage = window.location.hash.match(/message(\d+)/)[1];
        displayMessage();
      }
    });

    updateHash();
  </script>
</html>
于 2013-08-21T08:04:23.803 回答