简体   繁体   English

AJAX / Jquery / PHP-取决于锚点/哈希标签的加载页面

[英]AJAX/Jquery/PHP - Load page dependant on anchor/hash tag

I have the following code which works great:- 我有下面的代码很好用:

$('.ajax a').click(function() {
    getpageajax(this.href);
    return false;
});

function getpageajax(getpage) {
    if(getpage == "") {
        //SET ERROR?
        document.getElementById("main").innerHTML = "";
        return;
    }
    if(window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("main").innerHTML = xmlhttp.responseText;
        }
    }
    var urlarray = getpage.split('/');
    location.hash = urlarray[urlarray.length-1];
    xmlhttp.open("GET", "includes/AJAXgetpage.php?getpage=" + getpage, true);
    xmlhttp.send();
};

Only problem is that I have no idea how to get then read the anchor links I create (eg #contact-us) to create bookmarkable pages. 唯一的问题是我不知道如何获取然后阅读我创建的锚链接(例如#contact-us)以创建可收藏页面。

I tried to do a solution based around the following but it seems less than ideal 我尝试根据以下方法做一个解决方案,但似乎不太理想

<script>
var query = location.href.split('#');
document.cookies = 'anchor=' + query[1];
<?php if (!$_COOKIE['anchor']) : ?>
window.location.reload();
<?php endif; ?>
<?php
echo $_COOKIE['anchor'];
?>

To get the hash, other than your initial example, you can use window.location.hash 要获取哈希,除了最初的示例外,还可以使用window.location.hash

// example url - http://www.mysite.com/blog/post#comments
var hash = window.location.hash; // = "#comments"

You can use replace to get rid of the leading # if required. 如果需要,可以使用replace删除前导#

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM