Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 链接到命名锚不在IE中工作-已经尝试了建议的解决方案_Html_Css_Internet Explorer - Fatal编程技术网

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">&nbsp;</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">&nbsp;</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;
            }
        })