Html 链接到命名锚不在IE中工作-已经尝试了建议的解决方案
我有一个命名的锚标记:Html 链接到命名锚不在IE中工作-已经尝试了建议的解决方案,html,css,internet-explorer,Html,Css,Internet Explorer,我有一个命名的锚标记: <table id="search_results" name="search_results"> 这在Firefox和chrome中都可以使用,但在IE(8)中却不行 我试过使用。我的表格也总是有内容,这篇文章认为这可能是IE拒绝它的原因 如有任何建议,我将不胜感激 非常感谢两件事: IE8不支持内联块;) 当您尝试a锚(这可能是最好的)时,您的代码是这样的吗 <a name="search_results"></a> <ta
<table id="search_results" name="search_results">
这在Firefox和chrome中都可以使用,但在IE(8)中却不行
我试过使用。我的表格也总是有内容,这篇文章认为这可能是IE拒绝它的原因
如有任何建议,我将不胜感激
非常感谢两件事:
IE8不支持内联块;)
当您尝试a锚(这可能是最好的)时,您的代码是这样的吗
<a name="search_results"></a>
<table name="search_results" id="search_results">
</table>
方法几乎得到了普遍支持。首先,使用命名锚来导航页面。您必须使用命名的锚(
标记)来执行此操作。一些浏览器在非锚上支持它,但这不是通用的,不应该依赖它——正如您所发现的那样
第二,你确定你的页面足够长吗?如果您试图链接到的对象位于页面底部,则它不会像您预期的那样显示在视口顶部,因为它下面没有任何内容可显示在页面底部
第三,检查指定的锚是否正确。你应该这样做:
<a name="search_results"></a>
<table name="search_results">
...
...
我通过在锚点中添加一些文本实现了这一点,如:
<a name="search_results"> </a>
关于不需要文本的命名锚定:
其他人建议IE8采用这种“变通方法”:如果不需要文本,则插入“不间断空格”字符(
)
然而,我还发现,将IE8的视图/缩放从125%重置为100%也会激活未使用“非中断空间”解决方案更正的锚。IE8的视图/文本大小不是这个问题的一部分
注意:正在测试大型、纯文本的HTML页面:(font-face=“Verdana”size=“+1”
)。这些HTML页面在Firefox 15.01中正确显示,而不考虑查看/缩放、文本大小设置。这就是我搜索其他解决方案的动机:
添加的文本不适合显示,不间断的空格导致段落之间出现额外的行距。这本来可以纠正的,但是多MB页面需要大量的手工工作
使用iPage开发的页面可在以下位置查看:www.theUB.org
几位专业人士告诉我,在网站设计中通常避免使用如此长的页面,但这些页面(带有许多命名锚和“点击式”目录)似乎适用于这个2000页的公共域文本。无中断空间解决方案的另一个缺点是:
这些在线文本需要计算机屏幕阅读器正确阅读。有些人在其他博客上评论说,屏幕阅读器发出非中断空间(或添加文本)的声音
(注意段落编号后添加的小数点-这是防止屏幕阅读器说出合并段落编号和段落第一个单词所必需的。)这似乎是IE大文件加载延迟的另一个解决方案:创建一个较小的HTML文件,通过HREF链接到大文件(或书签)(名为anchor)在该文件中)
此测试已尝试多次,IE直接加载大文件总是会导致长时间延迟,但当用户单击小文件中的链接以转到大文件时则不会
也许,IE正在分析主文件,以查看它是否已加载到缓存中
注意:正在测试的这个HTML文件是11MB(一整本书包含许多书签和指向这些书签的链接,这些书签来自这个非常长的HTML页面的其他部分)。我在IE
、Edge
和chrome
上遇到了同样的问题
我认为问题在于name属性上的编码和解码
所以我做了一个解决方案
,看一看
anchorElem.on("click",function() {
var href = $(this).attr('href');
var scrollEle = $(".tocContent").find('a[name="' + href.substr(1) + '"]' + ', a[name="' + decodeURIComponent(href).substr(1) + '"]');
if (scrollEle.length > 0) {
$('html, body').animate({
scrollTop: scrollEle.offset().top
}, 0);
return false;
}
})
希望这对你有帮助
很高兴能解决浏览器兼容性问题
嗨,是的,就是这样。我在IE9中测试过,但它也不适用于这一点,但对FF和Chrome来说效果很好。@Joe,你能提供一个到你的测试的链接吗?顺便说一句,IE9支持内联块
,但它可能是一条红鲱鱼。嗨。谢谢你的回复很抱歉,我的回复延迟了。很遗憾,我真的无法给你我网站的链接。我的HTML是:
,相对url是mysite.com#search_results
。顺便说一句,谢谢你在IE9上提供的信息。嗨,谢谢你的回复。我已经尝试了我在帖子中提到的锚定标签。我的页面绝对是long够了,而且我确实正确地命名了锚。现在我在IE9中对它进行了测试,我发现它在那里也不起作用。奇怪。你可以发布测试输出的视图源,或者链接到你的测试吗?
<a name="search_results"> </a>
anchorElem.on("click",function() {
var href = $(this).attr('href');
var scrollEle = $(".tocContent").find('a[name="' + href.substr(1) + '"]' + ', a[name="' + decodeURIComponent(href).substr(1) + '"]');
if (scrollEle.length > 0) {
$('html, body').animate({
scrollTop: scrollEle.offset().top
}, 0);
return false;
}
})