用户
 找回密码
 入住 CI 中国社区
搜索
查看: 10066|回复: 12
收起左侧

[URL] 锚点与参数的矛盾

[复制链接]
发表于 2010-4-11 20:00:47 | 显示全部楼层 |阅读模式
是这样的,我现在用 http://server/tag/标签 来取得所有添加了“标签”这个tag的数据。
但是 在这个页面可能有文章,可能有图片,我就加了两个锚点链接:
<a name="art" id="art"></a>    文章的锚点
<a name="img" id="img"></a>  图片的锚点

模板大概这样:
——————————————————————
<a href=#img>图片</a>   <a href=#art>文章</a>   

<a name="art" id="art"></a> ---不可见元素 文章的锚点
文章列表

<a name="img" id="img"></a> ---不可见元素 图片的锚点
图片列表
——————————————————————

但是CI似乎把#也当做是 参数去解析了!根本不会进行页面内部的跳转,点过之后没有任何动静!不是刷新页面,也不是跳转到锚点标记处,而是没有任何动作。
而且,上面的这个方式添加的链接,它根本就会跳转到首页去了!这个链接的写法应该是:
<a href="<?php echo site_url('tag')."/".$tag ?>#img">图片</a>

说明一点,我并没有把#也放在参数中: $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';


请教各位大牛指点!
发表于 2010-4-11 22:32:04 | 显示全部楼层
不知道你最终输出的页面是什么样的,还是你预期的那样吗?
视图:<a href="<?php echo site_url('tag')."/".$tag ?>#img">图片</a>
最终页面预期:<a href="http://domain/tag/TAG#img">图片</a>

不过忽然发现好像你的site_url()用的也有问题
<a href="<?php echo site_url('tag/'.$tag); ?>#img">图片</a>
 楼主| 发表于 2010-4-12 00:55:57 | 显示全部楼层
<a href="<?php echo site_url('tag/'.$tag); ?>#img">图片</a>

呵呵,我的用法谈不上是问题吧。
我输出的页面绝对没问题。但是点击的时候不起作用。
发表于 2010-4-12 13:40:45 | 显示全部楼层
那你更换浏览器试一下吧,既然输出的页面是绝对没问题的
发表于 2010-4-12 16:01:58 | 显示全部楼层
本帖最后由 zycbob 于 2010-4-12 16:09 编辑

我这里测试没问题
ci 1.72
PHP复制代码
 
function test($v='')
{
        $this->load->helper('url');
        echo $v;        // 控制器/方法/参数
        echo '<a href="'.site_url('blog/test/'.$v).'#id2">goto id2</a>';
        $this->load->view('test');
}
复制代码
HTML复制代码
 
<html>
        <head>
                <title>test</title>
        </head>
<body>
        <div style="height:1000px;">1</div>
        <a name="id2"></a>
        <div style="height:1000px;">2</div>
</body>
</html>
 
复制代码

http://localhost/blog/test#id2
http://localhost/blog/test/param#id2
都可以跳转到锚点
 楼主| 发表于 2010-4-12 21:49:23 | 显示全部楼层
我这里测试没问题
ci 1.72


http://localhost/blog/test#id2
http://localhost/blog/test/param#id2
都可 ...
zycbob 发表于 2010-4-12 16:01



    谢谢你~
    是不是我的中文传参数引起的问题?因为TAG中有中文的存在
 楼主| 发表于 2010-4-16 00:03:09 | 显示全部楼层
这个问题完全可以这样解决,这个是我在案例网站中看到的一个方法,就是在TAG之后多加一个/然后加锚点即可
发表于 2010-4-18 17:00:37 | 显示全部楼层
有没有那个/似乎没影响,都一样正常
 楼主| 发表于 2010-6-22 17:38:26 | 显示全部楼层
有没有那个/似乎没影响,都一样正常
zycbob 发表于 2010-4-18 17:00



    你说的你测试的正常,我这里跳转倒是跳转了,不过很明显,网页重新加载了一遍。不知道你那里是否正常?
发表于 2010-6-23 09:43:17 | 显示全部楼层
# 后面的内容是不会传递到服务器端的。
除非你把 # 转义了 -_-

本版积分规则