Frage Wie man einen Link in einem neuen Tab oder Fenster in Meteor öffnet


Ich habe nichts gefunden, was funktioniert hat. Ich habe alle folgenden Versuche vergeblich versucht:

  • hat das Attribut hinzugefügt target="_blank" zum <a>
  • hinzugefügt target="someName" zum <a>
  • URL beginnt mit '/'
  • URL beginnt mit Meteor.absoluteUrl()
  • URL beginnt mit Meteor.absoluteUrl() mit dem "http://" entfernt
  • URL als String-Literal, nicht vom Template-Helper zurückgegeben
  • <a> Innerhalb {{#constant}} Region in Vorlage
  • <a> nicht im Inneren {{#constant}} Region in Vorlage
  • <a> im Körper außerhalb jeder Vorlage überhaupt
  • <a> an den Körper in der Browser-Konsole angehängt
  • window.open([url],[target]) mit allen vorgenannten Kombinationen.

In allen Fällen wird der Link auf derselben Registerkarte geöffnet, auf der er angeklickt wurde, mit Ausnahme der URLs, mit denen nicht begonnen wurde http://, die geöffnet hat about:blank Seite in einem neuen Tab.

Irgendeine Idee, was das verursacht, oder wie man es löst?


13
2017-12-17 07:49


Ursprung


Antworten:


Das scheint ein Fehler zu sein. Ich denke Meteor sollte Links mit ignorieren target="_blank". Vielleicht könnten Sie ein Problem auf der Ausgabe Tracker

Das heißt, ich habe dies erfolgreich als eine Arbeit getan:

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

Auch das habe ich gefunden http:// funktioniert für externe Links

<a href="http://twitter.com" target="_blank">Open new window</a>

Ich bin nicht sicher, warum diese Dinge für dich nicht funktionierten. Ich habe sie jedoch nur in Chrome getestet, also ist dies vielleicht ein Browserproblem.


9
2017-12-17 17:38



wenn Sie phonegap verwenden. Antwort ist hier phonegap offener Link im Browser


0
2017-10-24 16:50



Ich bin sicher zu spät für die Party, aber für die, die hier enden werden, um eine Lösung für dieses Problem zu finden (wie ich), möchte ich nur etwas über die window.open([url],[target]) Ansatz erwähnt, für diejenigen, die ein Bedürfnisfenster stattdessen eine neue Registerkarte benötigen.

Der dritte Parameter für window.open ist eine Liste von kommagetrennten Spezifikationen. Der Standardwert für den zweiten Parameter ist _blank Dadurch wird das neue Fenster in einem neuen Tab geöffnet.

window.open(event.target.href, "", "width=200, height=200"); sollte die Ziel-URL in einem öffnen neues Fenster (keine neue Registerkarte) mit den angegebenen Dimensionen.


0
2018-03-11 18:33



Erstelle diesen globalen Helfer

Helpers.addHttp = function (url) {
  if (!/^(f|ht)tps?:\/\//i.test (url)) {
    url = "http://" + url;
  }
  return url;
}

Verwenden Sie es in einer Vorlage

<a href="{{addHttp url}}" target="_blank">some text</a>

-1
2017-11-12 12:13