例如,我默认隐藏评论。
所以,如果我发现#comments,我会知道我需要展示它们。
是否有可能在页面加载时使用php或javascript捕获?
答案 0 :(得分:2)
使用JavaScript,您可以访问location.hash
属性。
window.onload = function(){
alert(location.hash);
}
答案 1 :(得分:1)
PHP不会知道#comments位,所以你必须使用javascript来实现这个功能
答案 2 :(得分:0)
在php中,您可以使用parse_url()函数访问URL的所有部分 http://php.net/parse-url
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
$url = parse_url( $url );
echo $url['fragment']; // will output 'anchor'
?>
修改强> 我很抱歉,虽然我的例子很有效,但对于服务器端生成的网址来说很好,但在这个问题的背景下你是正确的。片段不是我广泛使用的方法,虽然我经常使用parse_url所以它会立即浮现在脑海中。
为了给这个特定问题提供一些增值内容,我会使用jQuery来揭示最初隐藏的评论。如果你正在寻找那种东西,它很容易使用并且有一些光滑的动画。
e.g。
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready( function() {
$("a.toggleComments").click( function() {
$(".comment").toggle();
return false;
});
});
</script>
<style>
.comment {
display: none;
}
</style>
</head>
<body>
<p>Some text that is shown by default. <a href="#" class="toggleComments">Toggle Comments</a></p>
<p class="comment">A comment paragraph, originally hidden</p>
</body>
</html>
答案 3 :(得分:0)
任何网址的#fragmant部分实际上都没有发送到服务器。在执行请求时,浏览器将在#之后删除所有内容。
dcaunts建议是在正确的轨道上,你真的只能在javascript中使用它。