Как сделать ссылку открытой в новой вкладке или окне в Meteor
Я не нашел ничего, что сработало. Я пробовал все следующие, безрезультатно:
- добавлен атрибут
target="_blank"
в <a>
- добавлен
target="someName"
в <a>
- URL начинается с
'/'
- URL начинается с
Meteor.absoluteUrl()
- URL начинается с
Meteor.absoluteUrl()
с удаленным "http://"
- URL как строковый литерал, не возвращенный из помощника шаблона
-
<a>
внутри области {{#constant}}
в шаблоне
-
<a>
не внутри области {{#constant}}
в шаблоне
-
<a>
в теле вне любого шаблона вообще
-
<a>
, прикрепленный к телу в консоли браузера.
-
window.open([url],[target])
со всеми вышеупомянутыми комбинациями.
Во всех случаях ссылка открывается на той же вкладке, где она была нажата, за исключением URL-адресов, которые не начинались с http://
, которые открыли страницу about:blank
на новой вкладке.
Любая идея, что вызывает это, или как его решить?
Ответы
Ответ 1
Это похоже на ошибку. Я думаю, что Meteor должен игнорировать ссылки с target="_blank"
. Возможно, вы можете создать проблему в отслеживании проблем
Тем не менее, я успешно сделал это как работу:
test.html
<template name="test">
<a href="/new-window" target="_blank">Open new window</a>
</template>
test.js
Template.test.events({
'click a[target=_blank]': function (event) {
event.preventDefault();
window.open(event.target.href, '_blank');
}
});
Кроме того, я обнаружил, что добавление http://
работает для внешних ссылок, например.
<a href="http://twitter.com" target="_blank">Open new window</a>
Я не уверен, почему эти вещи не сработали для вас. Однако я тестировал их только в Chrome, поэтому, возможно, это проблема с браузером.
Ответ 2
если используется телефонная задержка. ответ здесь
phonegap открыть ссылку в браузере
Ответ 3
Я слишком поздно опоздал на вечеринку, но для тех, кто в конечном итоге попытается найти решение этой проблемы (например, я), я просто хочу сделать кое-что о подходе window.open([url],[target])
, упомянутом, для тем, кому нужно окно необходимости, вместо новой вкладки.
Третий параметр для window.open
- это список спецификаций, разделенных запятыми. Значением по умолчанию для второго параметра является _blank
, который заставит новое окно открываться на новой вкладке.
window.open(event.target.href, "", "width=200, height=200");
должен открыть целевой URL в новом окне (а не новую вкладку) с заданными параметрами.
Ответ 4
создать этот глобальный помощник
Helpers.addHttp = function (url) {
if (!/^(f|ht)tps?:\/\//i.test (url)) {
url = "http://" + url;
}
return url;
}
используя его в шаблоне
<a href="{{addHttp url}}" target="_blank">some text</a>