Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Target=_self таинственным образом превратился в _blank сам по себе

Автор вопроса: RayfloydОтветов: 2

Я работаю с php, чтобы создать несколько веб-страниц, и у меня есть небольшая проблема со ссылкой, которую я пытаюсь сделать.

По сути, у меня есть набор <a> с target="_self", чтобы он оставался на той же странице. (Обратите внимание, что страница представляет собой новое окно, и я также пытался использовать "_top" и "_parent")

<a href="http://ordi-003/inclusion/fiche.dos.assorti.info.php?id=<?php echo $donnees[0]['NoIdentDosAssorti'] ?>&lan=<?php echo $_SESSION['lan'] ?>" target="_self"><img src="<?php echo $donnees[0]['id2_pathImgMini'] ?>" width="75" height="75" /></a>

Это указанная ссылка в ее php-форме.

<a href="http://ordi-003/inclusion/fiche.dos.assorti.info.php?id=14&lan=fr" target="_self"><img src="../images/propriete/DosAssorti/mini/L482_mini.jpg" width="75" height="75" /></a>

Это кодирование результата в браузере при отображении исходного кода (через IE, Firefox, Chrome).

<a target="_blank" href="http://ordi-003/inclusion/fiche.dos.assorti.info.php?id=14&lan=fr">

Это одна и та же строка в соответствии с Firebug И инструментами разработки Chrome.

При нажатии на ссылку ожидаемым результатом является открытие ссылки на той же странице, однако она открывается в новом окне. Изменение внутри firebug "_blank" на "_self" и последующее нажатие на ссылку дает хорошие результаты и открывает ссылку на той же странице.

Я делаю что-то неправильно? Я неправильно использую здесь <a>?

Должен ли я искать другой способ сделать мою ссылку? Я довольно открыт ко всему, на самом деле я пробовал разные вещи и много искал в Google, но не мог найти людей с такой же проблемой. Кэш Firefox деактивирован, так что это не должно быть проблемой. Пробовал и на другом компе, результат тот же.

Если я дал слишком краткую информацию, просто скажите мне, что я должен также включить, поскольку я новичок в переполнении стека.

Редактировать: я забыл сказать, что если я удалю целевой параметр и просто не поставлю его, "страница исходного кода" не покажет ничего, что должно быть, но в инструментах firefug и chrome dev он все еще показывает target = "_blank". Также просто примечание: существует только 1 копия этого файла, и она находится на локальном хосте машины, на которой запущен локальный сайт. Я непосредственно редактирую этот файл.

Edit2: http://pastebin.com/yrAMQEL9 имейте в виду, что по какой-то причине отступы на pastebin ужасны.

  • Почему вы вообще используете target, если хотите, чтобы ссылка загружалась в том же окне? Тем не менее, ваша ошибка звучит так, как будто что-то (может быть, серверный скрипт?) изменяет ваш HTML или где-то на сервере кэшируется старая версия (или прокси-сервер, который используют обе машины), который отправляется вам. ThiefMaster 31.05.2012
  • У меня такое чувство, что вы смотрите две совершенно разные ссылки... Steve Robbins 31.05.2012
  • Можете ли вы опубликовать ссылку? например пример веб-страницы, jsFiddle... uınbɐɥs 31.05.2012
  • @ThiefMaster Ну, я знаю, что по умолчанию целью является _self, но, поскольку она открывалась в новом окне, я попытался принудительно ее использовать. Кэш Firefox отключен на сервере, и я не знаю, какой другой кеш может вызвать это. Без участия прокси. Rayfloyd 31.05.2012
  • @stevether Это единственная ссылка на этот .php, так что этого не может быть =/ Rayfloyd 31.05.2012
  • @ShaquinTrifonoff Это локально, извините, но что такое jsFiddle? Rayfloyd 31.05.2012

phphtmlhyperlink

Ответы

Ответ 1 · рейтинг 3 · Scott Saunders

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

Ответ 2 · рейтинг 1 · Rayfloyd

Наконец-то я нашел причину замены моего файла _self.

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

jQuery('a[href^=http]:not(.in)').attr({
    'target' : '_blank'
});

Это привело к замене _self на _blank.

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

Спасибо всем за вашу помощь.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы