Domino 9 und frühere Versionen > Entwicklung
Frame soll erkennen welche Bildschirmauflösung
adminnaddel:
Hallo liebe Gemeinde,
innerhalb einer Rahmengruppe lasse ich dynamisch die frames füllen.
jedoch ist egal mit welchen Werten (Prozent oder Relativ) ich die frames füllen lasse, einige pages die in den frame gemoved werden, werden bei zB 800x600 nicht vollständig angeziegt.
Kann ich vorab nicht irgendwie feststellen, mit welcher Bildschirmgröße der Anwender arbeitet, um dann gößenangepasste Seiten in den frame zu schieben?
Gibt es dabei eine Art Automatismus?
Danke für eure Hilfe
PS: Ich vergaß natürlich zu sagen, daß es sich hierbei um eine Notes und keine Webanwendung handelt!
Ranki:
Hallöchen,
es gibt da eine Lösung mit Javascript. Das Script fragt die Auflösung ab und führt dann zum entsprechenden Fenster.
<SCRIPT language=JavaScript>
function aufloesung()
{
var Hoehe, Breite;
Hoehe=screen.height;
Breite=screen.width;
if (Breite>600 & Breite<800)
{
window.open ("klein.html");
}
if (Breite>=800 & Breite<1024)
{
window.open ("mittel.html");
}
if (Breite>=1024)
{
window.open ("gross.html");
}
}
</SCRIPT>
So hast Du schonmal die Auflösungsabfrage und kannst entweder von Anfang an eine vorbestimmte komplette Seite laden oder auch einzelne Seiten den Frames zuordnen.
Schöne Grüße
Ranki
eknori (retired):
Ich habe das mal vor Jahren unter 4.6 gemacht ( mit Navigatoren )
In den "Initialize" Event des Datenbankscripts kommt folgender Code
Sub initialize()
Dim session As New NotesSession
Call session.SetEnvironmentVar("ScreenResolution",GetScreenResolution)
%REM
' @If(@Environment("ScreenResolution") ="1024x768";
' (@Command([OpenNavigator];"Nav1024"));
' (@Command([OpenNavigator];"Nav800")))
%END REM
End Sub
In den "Postopen" trägst du
@If(@Environment("ScreenResolution") ="1024x768";
(@Command([OpenNavigator];"Nav1024"));
(@Command([OpenNavigator];"Nav800")))
ein
' Declaration
Type RECT
x1 As Long
y1 As Long
x2 As Long
y2 As Long
End Type
Declare Function GetDesktopWindow Lib "user32" () As Long
Declare Function GetWindowRect Lib "user32" (Byval hwnd As Long, lpRect As RECT) As Long
Function GetScreenResolution As String
Dim R As Rect
Dim hWnd As Long
Dim RetVal As Long
hWnd = GetDesktopWindow ()
RetVal = GetWindowRect(hWnd, R)
GetScreenResolution = (R.x2 - R.x1) & "x" & (R.y2 - R.y1)
End Function
Das sollte so auch mit Frames funktionieren.
eknori
ach ja, in einer anderen DB mache ich das ja mit Frames ( wobei ich allerdings eine Rolle zur Identifikation verwende )
@If(@IsMember("[Profi]"; @UserRoles);
(@Do(@SetTargetFrame("_top");
@PostedCommand([OpenFrameset];"frmAdministrator")));
(@Do(@SetTargetFrame("_top");
@PostedCommand([OpenFrameset];"frmMain"))))
adminnaddel:
Ja, dann sage ich schon mal danke an euch beide!
@Raki....das sieht mir doch eher noch einer Weblösung aus.
Trotzdem vielen Dank
@Eknori....das ja doll, recht herzlichen dank!
Werde ich mal sofort probieren!!! Vielen Dank
Viele Grüße
adminnaddel:
@Eknori,
nochmal eine Frage zu deiner Lösung:
Das setzt doch voraus, das in der Notes.ini die Variable gesetzt ist, dem ist aber nicht so!
Wo, wann, wie wird sie gesetzt!
MfG
Andreas
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln