Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: MarkusL am 25.05.16 - 12:30:19

Titel: Internetseite per @URLOpen öffnen
Beitrag von: MarkusL am 25.05.16 - 12:30:19
Hallo zusammen,

ich habe foglendes Problem:
In einer Maske steht in dem Feld "Homepage" die Adresse zu einer Homepage.
Ich möchte diese Seite im Browser über einen Button öffnen.

Wenn ich nur die Seite mit dem folgenden Befehl aufrufe, wird mir die neue Seite immer im Frame des aktuellen Fensters geöffnet. Ich benötige aber einen neuen Tab oder ein neues Fenster (je nach Einstellung im Browser).
Code
Link := @GetField ( "Homepage" );
@URLOpen(Link)

Wenn ich folgenden Befehl verwende, sieht es im Prompt richtig aus, aber der Aufruf wird mit einem Fehler abgebrochen.
Code
Link := @GetField ( "Homepage" );
sLink := @Char(34) + Link + @Char(39) + @Char(44) + @Char(39) + "_blank" + @Char(39) + @Char(44) + @Char(39) + @Char(34);
@Prompt([Ok]; "Hinweis" ; sLink);
@URLOpen(sLink)

Fehler: Die Datei %20https://www.google.de','_blank%20/ wurde nicht gefunden.

Wie muss ich den String aufbauen, damit es funktioniert?

Da die Dokumente sowohl in Notes als auch im Browser gelesen und bearbeitet werden müssen, muss ich mit einem Button in der Maske arbeiten.

Danke für eure Hilfe
Gruß Markus
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: Klafu am 25.05.16 - 12:51:02
Bist du sicher dass es nicht am Link (bzw. den ganzen @Char Befehlen) selber liegt?

Ein Simples
Link := "http://www.google.de";
@URLOpen(Link)

funktioniert ja auch schon.

Generell muss es im Stil von @URLOpen("http://www.google.de") aufgebaut sein.

Chris
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: Klafu am 25.05.16 - 13:04:28
Als Ergänzung: https://www.ibm.com/support/knowledgecenter/SSVRGU_8.5.3/com.ibm.designer.domino.main.doc/H_EXAMPLES_URLOPEN.html (https://www.ibm.com/support/knowledgecenter/SSVRGU_8.5.3/com.ibm.designer.domino.main.doc/H_EXAMPLES_URLOPEN.html)


Zitat
The following code, in a document viewed from the Web, will open the www.acme.com Web page in a new window (_blank). Note that the window will not have any sFeatures assigned by previous javascript commands.

@URLOpen("http://www.acme.com','_blank")

The following code, in a document viewed from the Web, will open the www.acme.com Web page in a new window (_blank). All sFeatures will be inherited from the calling window.

@URLOpen("http://www.acme.com','_blank','")

The following code, in a document viewed from the Web, will open the www.acme.com Web page in a new window (NEW). The window will not inherit any sFeatures.

@URLOpen("http://www.acme.com','NEW")
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: umi am 25.05.16 - 13:26:59
Moin

%20 wäre ja ein Space.... Evtl. hat ja das Feld Homepage als erstes Zeichen einen Space drin.... schon mal mit @Trim() probiert ? oder was machst Du falls Homepage ein Multivalue feld ist ?
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: MarkusL am 25.05.16 - 15:24:01
@Klafu:
Wenn ich den Aufruf statisch eintrage, funktioniert es.
Da der Link aber in jedem Dokument anders lautet, muss ich den Link "zusammenbauen".
Die Hilfe hatte ich mir schon angesehen. Daher kam ich darauf, dass man auch ein neues Fenster öffnen kann.

@Urs:
Im Homepage-Feld kann nur ein Wert stehen.
Den Link in meiner Test-DB habe ich bereits geprüft. Er funktioniert auch, wenn ich kein neues Fenster haben will.

Also liegt es an dem zusammengebauten Link.
Ich weiß nur nicht, wie ich diesen zusammenstellen muss, damit es funktioniert.

Gruss Markus
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: Peter Klett am 25.05.16 - 15:55:12
@URLOpen(Link + "','_blank") ?
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: ERR am 25.05.16 - 16:20:13
Hallo Markus,

mit Javascript im @URLOpen auf dem Button bekommt man es hin:

@URLOpen("javascript:window.open(\"" + Link + "\",\"_blank\")")

Weitere Info zu den Parametern von "window.open" gibt es z.B. hier: http://www.w3schools.com/jsref/met_win_open.asp (http://www.w3schools.com/jsref/met_win_open.asp)

Schönen Feierabend und einen ruhigen Feiertag.

MFG
ERR
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: MarkusL am 25.05.16 - 17:15:19
@Peter:
Leider nein. Hatte ich auch schon versucht.  :-\
Der Befehl benötigt die Anführungs-" und in der Mitte '.
Daher meine Idee mit dem zusammengebauten Link.

Gruss Markus
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: Tode am 25.05.16 - 17:51:57
Was genau willst Du eigentlich mit Deiner Formel erreichen? Du schreibst die Text- Begrenzer mit ins Feld. Dass das nicht funktioniert, ist doch logisch.

Der Befehl lautet:

@UrlOpen( "url','frame" )

Die Anführungszeichen brauchst Du, wenn Du dem Quellcode mitteilen willst, wo die Textkonstante beginnt, und wo sie wieder endet.
Wenn Deine URL bereits in einer Variable stehen, dann entfallen natürlich die Textbegrenzer.

Deine Formel für den Link ist dann ganz simpel
Code
Link + "','_blank"

also so:
Code
Link := @GetField ( "Homepage" );
sLink := Link + "','_blank";
@URLOpen(sLink)

Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: Peter Klett am 26.05.16 - 09:14:26
Hat das schon einmal jemand wirklich ausprobiert?

Ich habe nun alle möglichen Varianten durchgespielt, das funktioniert aber nicht. Im Browser ist als aufgerufene Adresse angegeben http://www.google.de','_blank/, und die Seite kann natürlich nicht geöffnet werden, weil der Server nicht gefunden wurde.

Der Befehl @URLOpen müsste doch die Internetadresse  und das Ziel _blank ermitteln, und dann die Internetadresse im Ziel aufrufen. Stattdessen wird der gesamte übergebene Text als Internetadresse verwendet, und das kann weder IE noch Firefox (zumindest nicht bei mir).

Ich gehe davon aus, dass die von Klafu gepostete Hilfe einfach falsch ist, entweder hat man die Hilfe geschrieben, und dann vergessen, das in @URLOpen umzusetzen, oder es war mal geplant, dass ein Browser auf diese Weise ein neues Fenster öffnet und das wurde verworfen bzw. nicht von den Browserherstellern umgesetzt.

Getestet mit 8.5.3
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: Tode am 26.05.16 - 10:44:03
Achtung: der Befehl wie geposted funktioniert NUR, wenn die Maske im Browser geöffnet wird, steht aber so auch explizit in der Hilfe... Aber das passt ja zur Anforderung aus dem ersten Post.
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: Peter Klett am 26.05.16 - 12:54:53
Das habe ich auch gelesen und natürlich auch im Browser getestet. Ergebnis: geht bei mir nicht, weder im IE noch im Firefox

...
Da die Dokumente sowohl in Notes als auch im Browser gelesen und bearbeitet werden müssen, muss ich mit einem Button in der Maske arbeiten.
...

Markus benötigt das auch im Client, im Browser könnte er auch einen Link <a href ... target= ...> verwenden. Also erstes Fazit: Im Client wird das wohl nichts ...
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: thkn777 am 27.05.16 - 13:13:56
Ich werde sofort automatisch mißtrauisch, wenn etwas zu einfach aussieht. Ich begehe gerade bestimmt einen Denkfehler und/oder habe die Frage nicht richtig interpretiert. Falls nicht - vielleicht wäre das eine Lösung für Dich?

Was ich verstanden habe:
- Maske im Frameset mit Eingabefeld "url"
- Button, der diese URL in einem neuen Fenster/Tab öffnet
- die selbe Maske wird 1:1 im Notes Client und im Web verwendet

Was ich getestet habe:
- Maske "UrlOpen" erstellt mit Eingabefeld "url"
- dazu zwei Buttons "UrlOpen" und "UrlOpen neues Fenster"
- Frameset mit Frame "RahmenLinks" und "RahmenRechts"
- Maske "UrlOpen" im Frame "RahmenLinks"
- Standardziel aus RahmenLinks ist RahmenRechts

Button "UrlOpen":
Code
@URLOpen(url)

Button "UrlOpen neues Fenster":
Code
@SetTargetFrame("_blank");
@URLOpen(url)

Getestet im NotesClient R8.5.3FP6:
Die Seite geht jeweils in einem neuen Fenster auf. (Webbrowser in Arbeitsumgebung ist eingestellt auf "Microsoft Internet Explorer")

Getestet in IE und Firefox:
UrlOpen öffnet die Seite im rechten Frame, der andere Button jeweils in neuer Seite.

Tip: URL komplett eingeben, inclusive "http://"

Ich wünsche ein erholsames WE!

Th.
Titel: Re: Internetseite per @URLOpen öffnen
Beitrag von: MarkusL am 27.06.16 - 11:01:52
Danke an alle, die sich Gedanken gemacht und geholfen haben.

In den letzten Wochen hatte ich zuviele andere Projekte, daher musste ich dieses etwas zurück stellen.

Mit der Lösung von thkn777 habe ich genau das, was ich brauche.

Da die DB als Notfalllösung für den Ausfall unserer Citrix-Notes-Clients fungieren soll, rufe ich die DB über den Browser auf und öffne dann die weiteren Notes-DBs oder Internetseiten aus dem Browser.
Daher habe ich jetzt nur die Lösung mit den @SetTagetFrame getestet.

Vielen Dank an euch alle!!!
Dieses Forum ist immer für eine Lösung gut.  :)

Gruß Markus