Ссылка на именованный якорь не работает в IE - уже пробовал предлагаемые решения на SO - PullRequest
2 голосов
/ 19 августа 2011

У меня есть именованный тег привязки:

<table id="search_results" name="search_results">

Я ссылаюсь на это так:

pagename.php#search_results

Это работает в Firefox и Chrome, но не в IE (8).

Я попытался использовать тег <a>, как предлагается в некоторых других сообщениях. Я также попытался дать таблицу результатов поиска css:

display: inline-block

в соответствии с предложением одного из комментаторов этой статьи . В моей таблице также всегда есть контент, который, как предполагает статья, может быть причиной того, что IE отверг ее.

Буду благодарен за любые предложения.

Большое спасибо

Ответы [ 8 ]

2 голосов
/ 13 ноября 2012

Еще один недостаток решения неразрывного пробела:

Этот онлайн-текст должен быть правильно прочитан программами чтения с экрана компьютера.Некоторые люди комментируют другие блоги, в которых программы чтения с экрана озвучивают неразрывный пробел (или добавляют текст).

(обратите внимание на добавленный десятичный знак после номеров абзацев - это было необходимо для предотвращения озвучивания объединенными программами чтения с экрананомер абзаца и первое слово абзаца.)

2 голосов
/ 13 ноября 2012

Вот как я был заинтересован в поиске другого решения:

Добавленный текст был неподходящим для отображения, а неразрывный пробел приводил к появлению дополнительного пробела между абзацами. Это можно было бы исправить, но многобайтные страницы потребовали бы много ручной работы.

Страницы, разработанные с помощью iPage, можно посмотреть здесь: www.theUB.org

Мне сказали несколько профессионалов, что таких длинных страниц обычно избегают в дизайне веб-сайта, но эти страницы (со многими именованными якорями и оглавлением "укажи и щелкни"), кажется, хорошо работают в этом 2000- страница общедоступного текста.

1 голос
/ 13 ноября 2012

Относительно именованных якорей, которые не требуют текста:

Другие предложили этот «обходной путь» для IE8: вставьте символ «без пробелов», если текст не требуется (&nbsp;).

Однако я также обнаружил, что сброс View / Zoom моего IE8 с 125% до 100% также активировал якоря, которые не были исправлены с помощью решения «неразрывный пробел».IE8 View / Text Size не является частью этой проблемы.

Примечание. Большие, только текст, HTML-страницы тестировались: (font face="Verdana" size="+1").Эти HTML-страницы правильно отображаются в Firefox 15.01 без учета настроек «Просмотр / Масштаб», «Размер текста».

1 голос
/ 19 августа 2011

Во-первых, использование именованных якорей для навигации по странице делает то, что она говорит. Вы используете именованный якорь (тег <a>), чтобы сделать это. Некоторые браузеры поддерживают его на неякорных, но это не универсально и на него нельзя полагаться - как вы обнаружили.

Во-вторых, вы уверены, что ваша страница достаточно длинная? Если объект, на который вы пытаетесь сослаться, находится в нижней части страницы, он не будет отображаться в верхней части окна просмотра, как вы могли бы ожидать, поскольку под ним ничего нет, чтобы отобразить его в нижней части страницы. 1006 *

В-третьих, проверьте, правильно ли вы сделали указанный якорь. Вы должны делать что-то вроде этого:

<a name="search_results"></a>
<table name="search_results">
...
1 голос
/ 19 августа 2011

Пара вещей:

IE8 не поддерживает встроенный блок;)

Когда вы пробовали привязку, что, вероятно, лучше всего, ваш код был что-то вроде

<a name="search_results"></a>
<table name="search_results" id="search_results">
</table>

Метод <a name=""> в значительной степени поддерживается повсеместно.

0 голосов
/ 06 апреля 2017

Я столкнулся с той же проблемой на IE, Edge и chrome,

и я думаю, что проблема в том, что encoding and decoding в атрибуте имени

поэтому я сделал workaround solution, посмотрите

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;
            }
        })

надеюсь, что это поможет вам

и счастливого решения browser compatibility issues

0 голосов
/ 08 марта 2013

Похоже, это еще одно решение задержки загрузки большого файла в IE: создайте меньший HTML-файл, который через HREF ссылается на большой файл (или на закладку (называемую привязкой) в этом файле).

Этот тест неоднократно пытался выполнить, поскольку прямая загрузка большого файла в IE всегда вызывала большую задержку, но не тогда, когда пользователь щелкает ссылку в небольшом файле, чтобы перейти к большому файлу.

Возможно, IE анализирует основной файл, чтобы определить, был ли он уже загружен в кэш.

Примечание. Этот HTML-файл, который тестируется, имеет размер 11 МБ (целая книга со множеством закладок иссылки на эти закладки из других частей этой очень длинной HTML-страницы).

0 голосов
/ 09 октября 2012

Я получил эту работу, добавив немного текста внутри якоря, например:

<a name="search_results">&nbsp;</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...