锚点与参数的矛盾
是这样的,我现在用 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~%.:_\-';
请教各位大牛指点! 不知道你最终输出的页面是什么样的,还是你预期的那样吗?
视图:<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> <a href="<?php echo site_url('tag/'.$tag); ?>#img">图片</a>
呵呵,我的用法谈不上是问题吧。
我输出的页面绝对没问题。但是点击的时候不起作用。 那你更换浏览器试一下吧,既然输出的页面是绝对没问题的 本帖最后由 zycbob 于 2010-4-12 16:09 编辑
我这里测试没问题
ci 1.72
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>
<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
都可以跳转到锚点 我这里测试没问题
ci 1.72
http://localhost/blog/test#id2
http://localhost/blog/test/param#id2
都可 ...
zycbob 发表于 2010-4-12 16:01 http://codeigniter.org.cn/forums/images/common/back.gif
谢谢你~
是不是我的中文传参数引起的问题?因为TAG中有中文的存在 这个问题完全可以这样解决,这个是我在案例网站中看到的一个方法,就是在TAG之后多加一个/然后加锚点即可 有没有那个/似乎没影响,都一样正常 有没有那个/似乎没影响,都一样正常
zycbob 发表于 2010-4-18 17:00 http://codeigniter.org.cn/forums/images/common/back.gif
你说的你测试的正常,我这里跳转倒是跳转了,不过很明显,网页重新加载了一遍。不知道你那里是否正常? # 后面的内容是不会传递到服务器端的。
除非你把 # 转义了 -_-
页:
[1]
2