AJAX/Jquery/PHP-加载依赖于锚点/哈希标记的页面
AJAX/Jquery/PHP - Load page dependant on anchor/hash tag
我有以下代码,效果很好:-
$('.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();
};
唯一的问题是,我不知道如何获得然后阅读我创建的锚链接(例如#联系我们)来创建可添加书签的页面。
我试图做一个基于以下内容的解决方案,但它似乎不太理想
<script>
var query = location.href.split('#');
document.cookies = 'anchor=' + query[1];
<?php if (!$_COOKIE['anchor']) : ?>
window.location.reload();
<?php endif; ?>
<?php
echo $_COOKIE['anchor'];
?>
要获得哈希,除了您最初的示例之外,您可以使用window.location.hash
// example url - http://www.mysite.com/blog/post#comments
var hash = window.location.hash; // = "#comments"
如果需要,您可以使用replace
来消除前导#
。
相关文章:
- jQuery scrollTop-哈希错误
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- 在我的图库(jQuery)中使用箭头导航时,更改URL中的哈希
- jQuery将查询参数附加到当前哈希中,忽略重复项
- Jquery在尝试添加url参数时添加哈希符号
- 通过 url 哈希打开 Jquery 手风琴
- 页面哈希和后退按钮问题 phonegap+Jquery
- jQuery 以 url 哈希为条件
- 在哈希数组中保存对 jquery 元素的引用
- 在 jquery 中从隐藏的哈希创建一个关联数组
- jQuery:哈希之前的绝对路径名
- 在 JavaScript 中生成 Amazon API 签名,导入哈希函数 (jQuery)
- 如何使用jquery(或javascript)检测没有哈希的url的url更改
- 使用 Jquery/JavaScript 从 url 哈希除以 “/” 创建数组
- 在jQuery中处理碎片哈希
- jQuery Mobile是否可以在加载的第一个页面中显示哈希
- 如何在jQuery中创建哈希电子邮件
- jQuery Mobile URL在Android浏览器上将哈希(#)转换为%23
- 使用AJAX/jQuery动态更改页面内容并设置哈希
- 如何在javascript或jquery中删除锚标记哈希点击的滚动