Новое окно

Как автоматически добавить target=_blank в ссылки PDF с помощью PHP?

так как на этом сайте много PDF-файлов, и было бы проще сделать это автоматически, чем устанавливать их все по одному.

Я пробовал решение Javascript:

$(".newWindow a[href$='pdf']").attr('target','_blank'); 

Но мне интересно, есть ли способ сделать это автоматически в PHP, возможно, добавив что-то в файл функций WordPress?

2 ответа

Если твой .pdf ссылки только на содержание ваших страниц. Самый быстрый и простой способ сделать это — заменить внутри файла шаблона темы, который показывает содержимое вашей страницы, следующее:

echo str_replace('.pdf"', '.pdf" target="_blank"', get_the_content()); 

Это будет внутри файла content.php вашей темы.

Обратите внимание, что указанная выше функция может иметь параметр (например, the_content(»,FALSE,»); ) вам нужно передать тот же параметр в get_the_content() функция также.

Используя регулярные выражения, вы можете выполнять более умные замены. Этот пример ниже будет работать на всех теги с расширением PDF в URL, даже если URL имеет параметры.

echo preg_replace('/(()/', '$2 target="_blank">', get_the_content()); 

Это регулярное выражение выполняет две проверки: во-первых, чтобы проверить, содержит ли URL-адрес расширение PDF; и во-вторых, чтобы проверить, target=»_blank» атрибут еще не установлен. Если оба эти требования будут выполнены, он добавит target=»_blank» Атрибут до конца тега.

Источник

Target = «_blank» и другие значения атрибута target

target strong»>target HTML ? Почему он должен быть blank ? И самое интересное, почему вначале стоит подчеркивание? Давайте подробнее рассмотрим этот код и разберемся, что он делает.

Атрибут target

По умолчанию ссылки открываются в том же окне, в котором они были нажаты. Но иногда нужно, чтобы они открывались в новом окне. Это можно сделать, используя атрибут HTML target blank .

Значения target

Четыре наиболее распространенных значения атрибута target :

_self

Значение _self открывает ссылку в том же окне, в котором она была нажата. Это состояние по умолчанию для всех ссылок, так что это значение используется очень редко.

Единственная ситуация, в которой это может произойти, если в HTML использован тег , который устанавливает определенный способ открытия для всех ссылок. Например, если между тегами добавлен следующий код , нужно использовать target=»_self» , чтобы ссылка открывалась в том же окне.

_blank

Открывает ссылку в новой вкладке или окне. Это определяется локальными настройками пользователя, в большинстве браузеров это новая вкладка. Вы можете подумать, что с помощью данного значения можно реализовать всплывающие рекламные блоки. Но это не так. Чаще всего для этого используется JavaScript , а не HTML .

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

_parent

Значение _parent открывает ссылку в родительском фрейме для фрейма, в котором вы находитесь. Это не популярное значение, так как теги для создания фреймов и не поддерживаются в HTML5 . Тем не менее, это значение по-прежнему можно использовать внутри тегов .

_top

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

framename

Открывает ссылку во фрейме с именем, указанным в значении атрибута HTML href target . Например, открывается во фрейме с именем frame1 , то есть . iframe также поддерживают это значение атрибута. Но вряд ли вы когда-нибудь столкнетесь с такими вариантами использования. Когда framename выбирается пользователем, это имя может начинаться только с буквы, а не с цифры или другого символа.

Символ подчёркивания

Теперь разберемся, для чего используется символ нижнего подчеркивания. Если мы уберем подчеркивание и изменим значение атрибута на target=»blank» , то ссылка будет открываться в новом окне независимо от подчеркивания. Чтобы убедиться в этом, создайте новый HTML-документ и разместите на нем код следующей ссылки:

Затем добавьте в документ код следующей ссылки. А теперь при открытой вкладке с первой ссылкой откройте вторую с атрибутом HTML target blank :

Вы увидите, что вторая ссылка открылась во вкладке, которая была открыта для предыдущей ссылки, а не в новой ( собственной вкладке ).

Это связано со значением framename , которое мы рассматривали ранее. Поскольку мы начали значение с буквы, “ blank ” интерпретируется как значение типа framename . В случае если framename указан в качестве цели, но такой фрейм не существует, новая вкладка или окно будет создано с использованием этого имени. Таким образом, новое окно, которое мы открыли ранее, стало фреймом с именем “ blank ”.

Чтобы избежать этой проблемы, для ключевых слов значений было добавлено нижнее подчеркивание. Вот откуда взялось _blank .

Источник

Открытие новой вкладки для чтения файла PDF

Мне, наверное, здесь что-то не хватает, но я все равно спрошу. Я создал ссылку для открытия PDF файла, однако он открывается на текущей вкладке, а не в новой. Какой код я должен использовать в HTML, чтобы открыть новую вкладку, чтобы прочитать файл PDF.

8 ответов

Target _blank заставит браузер открыть его в новом окне

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

Цитата: Target _blank will force the browser to open it in a new window . Это просто неправда. Вы не можете заставить браузер открыть PDF. Его можно просто загрузить, в зависимости от настроек пользователя, даже если для атрибута target установлено значение «_blank». Смотрите мой ответ ниже.

Как все остальные отметили, это может работать:

Но на что никто не указал, так это на то, что это не гарантировано.

Невозможно заставить пользовательский браузер открыть файл PDF в новой вкладке. В зависимости от настроек браузера пользователя, даже если target=»_blank» браузер может реагировать следующими способами:

  1. Попросить действия
  2. Откройте его в Adobe Acrobat
  3. Просто скачайте файл прямо на свой компьютер

Взгляните на настройки Firefox, например:

Изображение 118020

Chrome имеет похожую настройку:

Изображение 118021

Если пользователь выбрал «Сохранить файл» в настройках своего браузера при встрече с PDF, вы не сможете переопределить его.

Источник

Как добавить target = _blank автоматически в PDF-ссылки с помощью PHP?

так как на этом сайте много PDF файлов, и было бы проще сделать это автоматически, а не устанавливать их все по одному.

Я пробовал решение Javascript:

$(".newWindow a[href$='pdf']").attr('target','_blank'); 

Но интересно, есть ли способ сделать это автоматически в PHP, возможно, добавив что-то в файл функций WordPress?

Если ваши .pdf ссылки находятся только в содержании ваших страниц. Самый быстрый и простой способ сделать это – заменить внутри файла шаблона темы, который показывает содержимое вашей страницы:

echo str_replace('.pdf"', '.pdf" target="_blank"', get_the_content()); 

Это будет внутри файла content.php вашей темы.

Обратите внимание, что приведенная выше функция может иметь параметр (например, the_content(»,FALSE,»); ) вам нужно передать тот же параметр в функции get_the_content() .

Используя регулярное выражение, вы можете выполнять более умные замены. Этот пример ниже будет работать во всех тегах с расширением PDF в URL-адресе, даже если URL имеет параметры.

echo preg_replace('/(()/', '$2 target="_blank">', get_the_content()); 

Это регулярное выражение выполняет два вида: во-первых, чтобы проверить, содержит ли URL-адрес расширение PDF; и, во-вторых, проверить, не установлен ли атрибут target=»_blank» . Если оба эти требования выполнены, то к концу тега будет добавлен атрибут target=»_blank» .

Источник

Атрибут target

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

_blank — загружает страницу в новое окно браузера;

_self — загружает страницу в текущее окно;

_parent — загружает страницу во фрейм-родитель;

_top — отменяет все фреймы и загружает страницу в полном окне браузера.

В примере 1 показано создание ссылки на сайт, который открывается в новом окне.

Пример 1. Открытие документа в новом окне

      

Ссылка открывает новое окно на сайт htmlbook.ru

Для создания валидного кода атрибут target может использоваться только при переходном , как показано во всех примерах этой статьи.

Если на сайте используются фреймы, то в качестве значения target можно использовать имя фрейма (пример 2).

Пример 2. Открытие документа во фрейме

      

Сайт htmlbook.ru

Ссылка в примере 2 ведет на сайт htmlbook.ru, открывающийся во фрейме с именем newframe .

Когда у target указано неизвестное значение, например, имя фрейма набрано с ошибкой, то это приводит к тому, что ссылка открывается в новом окне.

Если на веб-странице необходимо сделать, чтобы все ссылки открывались в новом окне, нет необходимости добавлять во все теги target=»_blank» . Код можно сократить, если вначале страницы добавить строку , как показано в примере 3.

Пример 3. Использование тега

     

Ссылка откроется в новом окне

Ссылка откроется в текущем окне

Сделать так, чтобы ссылка открывалась в текущем окне, в таком случае можно, если добавить к тегу атрибут target=»_self» , как показано в данном примере.

Источник

Читайте также:  Open source projects in javascript
Оцените статью