让人郁闷的IE

2006年1月9日星期一 22:26, bob, 技术随笔, 评论(10), 阅读(16526)
| |
2.0支持基于pathinfo的URL美化功能已经很久了(也就是说将日志的URL地址变为 yourname.com/read.php/1.htm 这样比较好看的形式),但我在官方日志上一直没有打开这个功能。原因是打开这个功能后,在现在使用人数最多的浏览器——IE上会有比较怪异的表现。说它怪异是我实在想不通IE这样表现的理由,而且当我查明原因后反而更加摸不着头脑了。

起因是这样的。由于启用 yourname.com/read.php/1.htm 这样的地址后,浏览器默认的当前路径是 read.php/ ,显然是错误的,所以我用了 <base href="yourname.com/" /> 将其重新调整为 yourname.com。这样一来,css的路径、链接的路径就都正确了。(IE还有一个让人郁闷的地方,过会再表。)

本来以为这样就OK,想不到2.0上线不过5分钟就被 msxcms 发现了问题。看以下两个地址:

http://www.bo-blog.com/weblog/read.php/325.htm?tem=default
http://www.bo-blog.com/weblog/read.php/325.htm?tem=steven01

然后试着选择正文的任何文字,你会发现在IE下,第2个模板的字怎样也不能被精确选中。例如单独选择“程序简介”四个字,是怎样都不行的。而第1个模板则可以任意选择文字。(如果第1个模板也出现同样的情况,则是你的浏览器缓存了旧的css导致的,请按ctrl+F5刷新。)

而当URL美化关闭时,这两个模板下的正文都可任意选取:

http://www.bo-blog.com/weblog/read.php?325&tem=default
http://www.bo-blog.com/weblog/read.php?325&tem=steven01

实在是百思不得其解。今天反复试验了半天,终于被我发现解决的方法。那就是把css中的
#wrapper {
  margin:0 auto;
  width: 780px;
  position: relative;
  text-align: left;
}
加红部分注释或删除掉。
以上两个模板的区别就在于此。

所以这个问题总结下来就是:
<base>和css中的position: relative;在某种情况下的冲突导致无法选取页面文字。看到这个风马牛不相及的结论我实在是无话可说了,只能称奇。

当然,IE还有个小小的郁闷,就是对于js里面的URL没有以<base>规定的path来改写,不过这应该是小问题,在js里面改改就成了。
Tags: ,
叶阳 Homepage
2006年10月31日星期二 08:46
的确很郁闷,现在很少用IE了,呵呵
总结PHP的引号和反斜杠问题  大 中 小  
[2006年3月6日星期一 04:09]
来源:自由的风 Blog
内容:1. magic_quotes_gpc=on:br/ = br/ = br/ = br/br/2. 当 、 插入数据库时,字符并没有变化,仍然为 和 。因此读出时无需再次stripslashes。br/例外:magic_quotes_runtime=on时。br/br/3. preg_replace的pattern中使用 /e 修正符,则replacement传递到callback函数中的情形为:br/ = br/ = br/ = br/br/4. 从数据库中读取,当magic_quotes_runtime=off时,似乎 = 空 ?br/br/总结:引号和反斜杠的问题很复杂,而且因各服务器的设置不同而千变万化。br/现在我的解决方法是br/ = #92;br/引号则用 htmlspecialchars ,quote_style设置为 ENT_QUOTES。br/br/希望SP1版本中贴代码的问题能够解决。br/测试:br/?phpbr/error_reporting(E_ALL);br/br//* 加入重定向以得到标准错误输出 stderr。 */br/$handle = popen(/path/to/spooge 21, r);br/echo $handle; . gettype($handle) . n;br/$read = fread($handle, 2096);br/echo $read;br/pclose($handle);br/br/?
tt
2006年1月10日星期二 12:25
转换后图片还在原来的1.7里啊。
Totti
2006年1月10日星期二 10:56
我后台开启了yourname.com/read.php/1.htm形式之后
如果我删除引用,出现下面的地址,会导致删除不了,
http://www.ittot.com/blog/read.php/admin.php?go=reply_deltb_73-401
应该是
http://www.ittot.com/blog/admin.php?go=reply_deltb_73-401
这样才对
Totti
2006年1月10日星期二 10:43
Kava也遇到这个问题,昨天我跟他说,最后找到也是CSS的问题,变成防止复制的功能了,^_^
usm
2006年1月10日星期二 10:29
请问这里说的关于的IE题是不是都已经修正了在下载包?
usm
2006年1月9日星期一 23:02
我们怎么修改啊?htm怎么不能用?其他程序试过服务器是可以生成htm的
bob 回复于 2006年1月10日星期二 09:31
你搞错了,这个不是生成html,是基于pathinfo的url美化。本质还是php。
caii Email Homepage
2006年1月9日星期一 22:33
表示同情呵呵
分页: 1/2 第一页 1 2 下页 最后页


Powered by Bo-Blog 2.1.1 RC1Code detection by Bug.Center.Team
沪ICP备05032643号

© 2008 博睿智 Marshal Design Bo-blog offcial theme