Autor Thema: JavaScript + Fenster öffnen WEB  (Gelesen 3212 mal)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
JavaScript + Fenster öffnen WEB
« am: 07.11.03 - 12:39:59 »
Hallo, ich hab mir in der Ansicht einen Button erstellt der mir im Web ein Doc mit einer Größe und einer Position öffnet.

var pathname = window.location.pathname;
var key
filename = pathname.substring(0,(pathname.lastIndexOf('nsf')+4))
key="08efb5252a31dbc4c1256db70051a0e9/0c03262f77efca3fc1256db000572c51"
newWindow = window.open(filename +  key + '?OpenDocument','secondary_window','toolbar=no,location=no,scrollbars=yes,directories=no,height=500,width=600')
newWindow.moveTo(screen.width/2-300,screen.height/2-250);

So nun ist meine Frage:
1. Wie bekomm ich das hin wenn ich in der Ansicht doppelt auf das Doc klicke das er mir das Fenster mit der Größe und Position und mit dem jeweiligen Doc öffnet.(da ja "key" derzeit fix ist)
2. Wie kann ich das verbessern das er mir zuerst das Fenster auf der Position öffnet und dann den Inhalt auf das Doc setzt da man sonst zuerst das Fenster sieht und dann wird es erst verschoben.

danke robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Axel Janssen temp

  • Gast
Re:JavaScript + Fenster öffnen WEB
« Antwort #1 am: 07.11.03 - 13:03:20 »
2. Du kannst in dem window.open 2 weitere Parameter hinzufügen (left, top, screenX, screenY). Die haben genau die gleiche Funktion wie dein moveTo.
O.k. das waren jetzt 4. Aber wenn ich mich recht entsinne gab es zumindest unter MS, NS-Browsern der Version 4 irgendwelche standardinkonformen Kuriositäten.
Hier ist ein Beispiel:
http://selfhtml.teamone.de/javascript/objekte/window.htm#open

1. durch eine Ansichts-Spaltenformel. Geh mal davon aus, dass das für Browser ist. Das endet dann meist in einer "treat content as html"-Ansicht mit total vielen tr und noch mehr td tags.
Wieso eigentlich "doppelt auf das doc klicken. Ist das fürs Internet? Da kennt man doch keine doppelklicks. Mich würde das verwirren.

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:JavaScript + Fenster öffnen WEB
« Antwort #2 am: 07.11.03 - 13:04:40 »
zu 1: ich würde den Code, den du schon hast in eine Funktion packen diese Funktion in den Header der Seiten einbauen.
in der Ansicht dann die Spaltenformel so formulieren, dass sie die Funktion aufruft, und zwar immer mit der jeweiligen ID des Dokuments (Zeichenkette zusammenbasteln mit @DocumentUniqueID + dem JS-Funktionsaufruf javascript:openWindow(diverse Parameter))

Doppelklick hast du in Notes soviel ich weiß nur dann, wenn du Ansichten durch das ViewApplet anzeigen lässt. Das müsstest du mit dieser Methode dann deaktivieren.

zu 2: der Methode open des window-Objekts kannst du IIRC Positionsangaben mitgeben (schau einfach mal in SelfHTML nach, da ist das bestimmt beschrieben)
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:JavaScript + Fenster öffnen WEB
« Antwort #3 am: 07.11.03 - 13:48:05 »
Danke für die schnelle Antwort!!
Das Problem 2. hab ich gelöst. Die Parameter gibt es ja wirklich. :D

So nun jetzt zu 1.: Das ganze findet im Browser statt. Ich würde aber gerne die Ansicht durch das ViewApplet anzeigen lassen da man dann eben mit doppleklick arbeiten kann und die Ansicht auch schöner ist.
Ist dann das ganze trotzdem zu realisieren? und wie genau?
Ich hab ein $$ViewTemplate for test für meine Anischt gemacht.
Wie kann ich in der Spaltenformel das so formulieren das er die Funktion aufruft? Und wie kombiniere ich @DocId mit JS-aufruf?
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Axel Janssen temp

  • Gast
Re:JavaScript + Fenster öffnen WEB
« Antwort #4 am: 07.11.03 - 14:33:58 »
Danke für die schnelle Antwort!!
Das Problem 2. hab ich gelöst. Die Parameter gibt es ja wirklich. :D

So nun jetzt zu 1.: Das ganze findet im Browser statt. Ich würde aber gerne die Ansicht durch das ViewApplet anzeigen lassen da man dann eben mit doppleklick arbeiten kann und die Ansicht auch schöner ist.
Nein. Nein. Nein.
Tschuldigen.
Aber das verstösst IMHO gegen sämtliche GUI-Prinzipien.
1. Browser-Ansichten sind langsam und klumpig. Eben genau deshalb hat Lotus in neueren WebSchablonen den Applet-Unsinn durch DHTML ersetzt. Bedenke: Der Anwender wird frustriert von den lahmen, klumpigen Applets. Nachdem er 2 Tage damit gearbeitet hat, fängt er an zu Trinken. Er schlägt seine Frau und seine Kinder. Die Kinder werden zu Serienkillern. Willst du dafür verantwortlich sein ???
2. Für 5er Browser gibt es glaub ich auch das Event onDoubleClick.
3. Ein User erwartet im Browser keinen Doppel Klick.

Gruß Axel
« Letzte Änderung: 07.11.03 - 14:37:07 von Axel Janssen temp »

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:JavaScript + Fenster öffnen WEB
« Antwort #5 am: 07.11.03 - 15:55:19 »
ich kann mich meinem Vorgänger nur anschließen. Die Applets sind sehr träge und Doppelklick im Browser ist sehr gewöhnungsbedürftig.

Wie kann ich in der Spaltenformel das so formulieren das er die Funktion aufruft? Und wie kombiniere ich @DocId mit JS-aufruf?

Auch hier hat Axel Janssen temp schon in die richtige Richtung gezeigt: du musst in deiner Ansicht einstellen, dass ihre Inhalte im Web als HTML behandelt werden (auf dem Reiter mit dem Hütchen im Eigenschaftenfenster).
Dann musst du die Spaltenformeln so formulieren, dass sie HTML "erzeugen".
Der Link, den du brauchst sieht ungefähr so aus:

<a href="javascript:OpenDocument ('/DBName.nsf/View/DocID?Open')">Bezeichnung</a>

wobei
DBName.nsf für den Pfad der DB stehen (am besten mit @DBName ermitteln)
View für den Namen der Ansicht steht
DocID für die DokumentID (mit @DocumentUniqueID ermitteln)
Bezeichnung für die Bezeichnung des Links (wohl irgendein Feldwert)


sodass deine Spaltenformel etwa so aussehen könnte:

_dbName := ...;
_viewName := ...;
_docID := @DocumentUniqueID;
_title := ...:
_link := "<a href="javascript:OpenDocument ('" + _dbName + "/" + _viewName + "/" + _docID + "?Open')">" + _title + "</a>";
_link

(keine Garantie dass die Formel so richtig ist + du musst natürlich die Anführungszeichen innerhalb anderer Anführungszeichen mit \ escapen)

dann kannst du noch, wie schon von Axel Janssen temp, ein paar Zeilen und Palten einbauen (allesmit HTML in der Spaltenformel), dass es gut aussieht.
Du kannst mit HTML + CSS die wunderschönsten Ansichten basteln, wenn du etwas HTML kennst.

wenns nicht klappt, dann frag nochmal nach
« Letzte Änderung: 07.11.03 - 15:59:33 von potsmoker »
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:JavaScript + Fenster öffnen WEB
« Antwort #6 am: 10.11.03 - 16:40:02 »
Ich hab das jetzt den Inhalt als HTML anzeigen lassen:

_dbname := @ReplaceSubstring (@Subset (@DbName; -1); "\\"; "/");
_viewname :="test1";
_link :="<tr><td><a href =\'/" + _dbname + "/" + _viewname + "/"  + @Text(@DocumentUniqueID) +  "?Open" +"\' >"+ Wert +"</a></td>";
_link

so. Wenn ich jetzt auf den Link klicke dann macht er mir das im gleichen Fenster auf.
Wie verknüpfe ich jetzt mit meinem Link das javascript das mir ein neues Fenster öffnet?

danke robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Axel Janssen temp

  • Gast
Re:JavaScript + Fenster öffnen WEB
« Antwort #7 am: 10.11.03 - 17:23:39 »
Potsmoker hatte hierfür den wohl besten Ansatz genannt.

Du schreibst in den JSHeader der Page, in der du die view vermutlich eingebettet hast eine function.

Code
function openDialogWindow(String docUnidId) {
 der javaScriptCode....
}

Nein. Nein. Nein.

Problem ist, dass du dann keine Formeln verwenden kannst. Z.B. für das voll korrekte: _dbname := @ReplaceSubstring (@Subset (@DbName; -1); "\\"; "/");
und die entsprechenden Werte hartkodieren müßtest (schlechte Idee).

Deshalb empfehle ich die View in einer Maske zu embedden und das entsprechende JavaScript in HtmlHead abzulegen (muss dann <script></script> tag drum!

Aus deinen Links kannst du das dann aufrufen:
Die müsstest du dann so in der Art aufbauen.
<a href=\"javaScript:openDialogWindow(" + docUnid + ")\">A link to click<</a>
Gib mal in die Browseradressbox das folgende ein:
javascript:alert("hallo");
Dann dürfte das klarer sein.

Ich hoffe es hilft dir weiter. Ist ein bischen fricklig.

Gruß Axel

ps morgen hast du das Problem: Wie aktiviere ich das dialogfenster, wenn es einmal hinter das Hauptfenster gerutscht ist.  ;D

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:JavaScript + Fenster öffnen WEB
« Antwort #8 am: 10.11.03 - 17:46:56 »
ich glaub dann bin ich eh am richtigen weg so hab ich das bis jetzt in einer Maske:

<html>
<script language="JavaScript">
function hallo(key) {
alert(key)
newWindow = window.open("http://localhost/sonstige/MailOverview.nsf/" +  key + '?OpenDocument','secondary_window','toolbar=no,location=no,scrollbars=yes,directories=no,left='+high+',top='+left1+',height=500,width=600')
}
</script>
<body bgcolor="#FFFFFF" text="#000000">
<table width="75%" border="0">

Hier ist meine eingebettete Ansicht

</table>
</body>
</html>


und in der spalte meiner ansicht hab ich das:

_link :="<tr><td><a href =\"javascript:hallo(\'" + @Text(@DocumentUniqueID) + "\')\" >"+ Wert +"</a></td>";
_link

Er macht mir auch die Alertbox auf die ich in der Function habe aber weiter bin ich jetzt noch nicht!!! Ich hoffe ich bekomme das heute noch hin!!!
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:JavaScript + Fenster öffnen WEB
« Antwort #9 am: 10.11.03 - 17:55:28 »
Jetzt hab ich es:
Ich hab die Variablen

high=screen.width/2-300
left1=screen.height/2-250

noch vergessen!!
So jetzt hab ich das ganze auch schon ein wenig mit einem Table gemacht aber was mach ich mit einer kategorisierten Spalte?
Geht das oder muss ich da etwas bedenken die darzustellen?
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Axel Janssen temp

  • Gast
Re:JavaScript + Fenster öffnen WEB
« Antwort #10 am: 10.11.03 - 18:04:16 »


noch vergessen!!
So jetzt hab ich das ganze auch schon ein wenig mit einem Table gemacht aber was mach ich mit einer kategorisierten Spalte?
Geht das oder muss ich da etwas bedenken die darzustellen?

Geht auch. Ist aber nicht so einfach.
Bestes vorgehen:
Erzeuge einfach eine Kopie von der form und tue da diesmal die view nicht als "treat content as html" rein. Im IE kannst du mit der Maus über die Kategorien fahren und die url erscheint in der Statuszeile. Das musst du nachbauen.

Gruß Axel

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:JavaScript + Fenster öffnen WEB
« Antwort #11 am: 10.11.03 - 18:18:27 »
Ok ich hab das verstanden werde es aber erst morgen realisieren und test können. Nur wie mach ich das ganze:

?OpenView&Start=1&Count=60&Expand=4#4

dynamisch wenn ich eine neue Kategorie dazu bekomme? Oder ist die Frage nicht relevant weil er das eh automatisch macht?

So da wären wir aber bei der Diskussion ob die Ansicht JavaApplet vielleicht nicht doch besser gewesen wäre? Nur wie hätte ich dort den ganze html und javascript code umgesetzt? Naja.. :D


robert
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Axel Janssen temp

  • Gast
Re:JavaScript + Fenster öffnen WEB
« Antwort #12 am: 11.11.03 - 10:15:43 »
Ok ich hab das verstanden werde es aber erst morgen realisieren und test können. Nur wie mach ich das ganze:

?OpenView&Start=1&Count=60&Expand=4#4

dynamisch wenn ich eine neue Kategorie dazu bekomme? Oder ist die Frage nicht relevant weil er das eh automatisch macht?


Das geht schon. Mit Applets hast du wieder andere Probleme (zu langsam, teilweise instabil, etc.).

Sobald du mit Kategorien arbeitest, musst du auf die alte 4.6 er Technik der Templates zurückgreifen. Das ist weil die kategorie-Links auf die view selbst referenzieren und nicht auf die page/form, wo du die view embedded hast.

 Schau mal nach $$ViewTemplate in der Hilfe.
Eine Maske $$ViewTemplate for ViewName
Dort wo die view hinkommt ein Feld $$ViewBody.

In der Formel kannst du mit @DocNumber arbeiten.

so in der Art
Code
"<a href=\"/" + dbPath + "/" + viewname + "?openView&Start=1&Count=1000&Expand=" + @DocNumber +  "#" + @DocNumber + "\">link</a>"

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:JavaScript + Fenster öffnen WEB
« Antwort #13 am: 11.11.03 - 10:52:25 »
Ok das mit dem $$ViewTemplate for view hab ich jetzt eh auch schon. Nun wenn ich das feld $$ViewBody dann erzeuge muss ich die eingebettete View dann entfernen?

Ich hab bei notes.net das gefunden:

RE: Click Category to Expand/Collapse on Web

Another similar solution I have written, with code that might be easier to
understand is to put the following JavaScript function in the JSHeader:



function go( docNumber ) {
var docNumberLength = docNumber.length;
alert(docNumber)
for ( i = 0 ; i < document.links.length ; i++ ) {
var link = document.links.href;
var startCollapse = link.indexOf( 'Collapse=' , 0 ) + 9;
var startExpand = link.indexOf( 'Expand=' , 0 ) + 7;

if ( startCollapse > 8 ) {
var tempdocNumber = link.substring( startCollapse , startCollapse +
docNumberLength );
} else if ( startExpand > 6 ) {
var tempdocNumber = link.substring( startExpand , startExpand +
docNumberLength );
}

if ( tempdocNumber == docNumber ) {
window.location = link;
return;
}
}
}

Then add the following in the column formula around the value to be displayed:

A HREF=\'javascript:go(\"" + @DocNumber + "\")\'>]

The link will call the JavaScript function. This function loops through all
the links on the page and matches the DocNumber for the category text with the
DocNumber of the corresponding 'twistie' HREF, then replaces the window
location with that link value.

Das "A HREF=" hab ich durch das ersetzt:

_link :="<tr><td><a href =\"javascript:go(\'" + @DocNumber + "\')\" >"+ Spalte +"</a></td>";
_link


und die Function hab ich bei pass trouth html hineingepackt!!!!

Er zeigt mir auch alert(docNumber) 1 oder 2 an aber er erweitert mir die categorie nicht!!!
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:JavaScript + Fenster öffnen WEB
« Antwort #14 am: 11.11.03 - 11:13:26 »
Ein weiteres Problem ist: siehe bild:
Er rückt mir die hinteren spalten eine spalte weiter nach vorne wenn in der ersten spalte die ja kategorisiert ist nix drinnen steht!!!
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Axel Janssen temp

  • Gast
Re:JavaScript + Fenster öffnen WEB
« Antwort #15 am: 11.11.03 - 11:14:22 »
1. Ok dasf mit dem $$ViewTemplate for view hab ich jetzt eh auch schon. Nun wenn ich das feld $$ViewBody dann erzeuge muss ich die eingebettete View dann entfernen?

2. Er zeigt mir auch alert(docNumber) 1 oder 2 an aber er erweitert mir die categorie nicht!!!


zu 1:
Habe es noch nicht so gemacht. Aber ich glaube, du entfernst besser das ViewBody Feld, da die eingebettete Ansicht laut Doku den selben Effekt hat, aber moderner ist.

zu 2:
ich finde die von mir vor skizzierte Lösung besser, kann mich aber irren, weil ich die hier nicht verstehe ;D

tue eine alert (link); vor die Zeile window.location=link im Skript.

vielleicht heute abend wieder, muss jetzt hier ran.

« Letzte Änderung: 11.11.03 - 11:19:50 von Axel Janssen temp »

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:JavaScript + Fenster öffnen WEB
« Antwort #16 am: 11.11.03 - 16:44:20 »
Ich hänge mal meine Test-db herein um das ganze zu veranschaulichen:
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz