Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Скачивание файла в новом окне в Downloads

Ребята, всем привет!

В общем, поставил себе IPS 4.5.3, сделал загрузку файлов в Downloads по ссылке, потому как требуется именно так. Но проблема в том, что не могу никак сделать, чтобы при клике на кнопку Скачать, сайт открывался в новом окне, а не в этом же.

Пробовал в код шаблона ставить на эту кнопку банальный target="_blank", так же пробовал через js onclick, ничего короче не работает. Посоветуйте гуру, как решить данную проблему? Заранее благодарен за помощь.

Рекомендованные сообщения

target blank должен был сработать. Возможно не к тому элементу добавился. Нужно точно убедится в его наличие или в исходном коде или в инспекторе элементов. Можно попробовать также добавить rel="external" (если его нету).

  • Автор
1 минуту назад, siv1987 сказал:

target blank должен был сработать. Возможно не к тому элементу добавился. Нужно точно убедится в его наличие или в исходном коде или в инспекторе элементов. Можно попробовать также добавить rel="external" (если его нету).

Я, вроде как, хорошо знаю html, но вот тут никакие способы что-то не помогают(( может кусок кода мне скинуть сюда?

Давайте код, показывайте скриншоты, давайте все детали что есть.

Нужно точно смотреть в исходном коде, разные форматы файлов могут генерироваться разными участками кода.

  • Автор

В общем, версия IPS 4.5.3, ниже код самой кнопки из Downloads

<ul class="ipsToolList ipsToolList_vertical ipsClearfix">
						{{if $file->canBuy()}}
							{{if $file->canDownload()}}
								{template="downloadButton" group="view" app="downloads" params="$file"}
							{{endif}}
							<li class='ipsToolList_primaryAction'>
								{{if !$file->isPurchasable( FALSE )}}
									<span class="ipsType_light ipsType_blendLinks ipsResponsive_hidePhone ipsResponsive_inline"><i class="fa fa-info-circle"></i> {lang="purchasing_disabled"}</span>
								{{else}}
									<a href='{$file->url('buy')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' {{if $file->container()->message('disclaimer') AND \in_array( $file->container()->disclaimer_location, [ 'purchase', 'both'])}}data-ipsDialog{{endif}}><i class='fa fa-shopping-cart'></i> &nbsp;{lang="buy_now"}{{if $price = $file->price()}} - {$price|raw}{{endif}}</a>
								{{endif}}
							</li>
						{{else}}
							{{if $file->canDownload() or !$file->downloadTeaser()}}
								{template="downloadButton" group="view" app="downloads" params="$file"}
							{{else}}
								{$file->downloadTeaser()|raw}
							{{endif}}
						{{endif}}
						{{if ( isset( $purchasesToRenew ) or $purchasesToRenew = $file->purchasesToRenew() ) and \count( $purchasesToRenew )}}
							<li class='ipsToolList_primaryAction'>
								{{if \count( $purchasesToRenew ) === 1}}
									{{foreach $purchasesToRenew as $purchase}}
										<a href='{$purchase->url()->setQueryString('do', 'renew')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important'><i class='fa fa-refresh'></i> &nbsp;{lang="purchase_renew_now"} - {$purchase->renewals->cost}</a>
									{{endforeach}}
								{{else}}
									<a href='#elFileRenew_menu' id='elFileRenew' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' data-ipsMenu><i class='fa fa-refresh'></i> &nbsp;{lang="purchase_renew_now"} <i class="fa fa-caret-down"></i></a>
									<ul id='elFileRenew_menu' class='ipsMenu ipsMenu_auto ipsHide'>
										{{foreach $purchasesToRenew as $purchase}}
											<li class='ipsMenu_item'><a href="{$purchase->url()->setQueryString('do', 'renew')->csrf()}">{$purchase->name}<br><span class='ipsType_light'>{$purchase->renewals}</span></a></li>
										{{endforeach}}
									</ul>		
								{{endif}}						
							</li>
						{{endif}}
					</ul>

 

В шаблоне downloadButton видно что генерируется ссылка. Вы где именно добавляете атрибут?
Я ведь не даром упомянул что нужно смотреть есть атрибут в коде или нет, возможно вы его просто не к тому элементу добавляете.

Покажите исходный код из браузера вашей ссылки где есть атрибут target и ссылка не открывается в новом окне.

  • Автор
17 минут назад, Dedsec сказал:

<a href='{$file->url('buy')->csrf()}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' {{if $file->container()->message('disclaimer') AND \in_array( $file->container()->disclaimer_location, [ 'purchase', 'both'])}}data-ipsDialog{{endif}}><i class='fa fa-shopping-cart'></i> &nbsp;{lang="buy_now"}{{if $price = $file->price()}} - {$price|raw}{{endif}}</a>

Вот сюда перед href ставлю target='_blank'

  • Автор
15 минут назад, siv1987 сказал:

В шаблоне downloadButton видно что генерируется ссылка.

Очень Вас благодарю! Спасибо огромное! Всё реально получилось, проставил в этом шаблоне и гуд

 

24 минуты назад, Dedsec сказал:

Всё реально получилось, проставил в этом шаблоне и гуд

Собственно как и подсказывали мои экстрасенсорные способности - там стопицот ссылок, легко ошибиться и вписать код не туда, даже с хорошим знанием html.

  • 3 года спустя...

Извиняюсь за поднятие старой темы, но у меня точно такая же проблема, и способ исправления указанный тут, не помогает. Версия IPS 4.7.12.

Вставляю target="_blank" как написано здесь, в шаблон downloadButton, но ссылки как открывались в текущем окне, так и открываются:

<a target="_blank" href='{{if settings.idm_antileech AND !$file->requiresDownloadConfirmation()}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_fullWidth ipsButton_veryLarge ipsButton_positive' {{if $file->requiresDownloadConfirmation()}}data-ipsDialog{{endif}} data-datalayer-postfetch><i class="fa fa-download"></i> {lang="download_now"}</a>

В инспекторе элементов если просмотреть код, то атрибута target="_blank" нет. Не пойму в чем дело, когда-то на начальных билдах 4-ой версии все работало.

P.S. Частично обнаружил проблему: попробовал наудачу изменить код в стандартном шаблоне - заработало. А вот на стороннем (ipsfocus) не работает, хотя код шаблонов идентичен.

P.P.S. Нашел причину, и она очень странная) В общем, код в стандартном шаблоне:

<a target="_blank" href='{{if settings.idm_antileech AND !$file->requiresDownloadConfirmation()}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_fullWidth ipsButton_large ipsButton_important' {{if $file->requiresDownloadConfirmation()}}data-ipsDialog{{endif}} data-datalayer-postfetch >{lang="download_now"}</a>

Код в шаблоне сторонней темы:

<a target="_blank" href='{{if settings.idm_antileech AND !$file->requiresDownloadConfirmation()}}{$file->url('download')->csrf()}{{else}}{$file->url('download')}{{endif}}' class='ipsButton ipsButton_fullWidth ipsButton_veryLarge ipsButton_positive' {{if $file->requiresDownloadConfirmation()}}data-ipsDialog{{endif}} data-datalayer-postfetch>{lang="download_now"}</a>

В стороннем шаблоне изменили кнопку, сделав ее больше и поменяли цвет. Я попробовал сменить ipsButton_veryLarge на ipsButton_large - и все заработало. Попробовал менять на все доступные значения от small до veryLarge - не работает только на veryLarge.

Изменено пользователем DevilDriver

Рано радовался, как говорится 🙂

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

<a href='{$fileObject->url('download')->setQueryString( array( 'r' => $k, 'confirm' => 1, 't' => 1, 'version' => isset( \IPS\Request::i()->version ) ? \IPS\Request::i()->version : NULL ) )->csrf()}' class='ipsButton ipsButton_positive ipsButton_large' data-action="download" {{if member.group['idm_wait_period']}}data-wait='true'{{endif}}><i class="fa-solid fa-download"></i> {lang="download"}</a>

Путем тестов было обнаружено, что если добавить в эту строку target="_blank" и удалить data-action="download", то ссылка открывается в новом окне, но при этом таймер ожидания не запускается, ссылка открывается сразу. Есть ли варианты как-то исправить это? Рабочий таймер ожидания к сожалению необходим.

Изменено пользователем DevilDriver

А какой смысл в новом окне? пользователь все равно останется на текущей странице.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.