Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Web-Widget, welche Technik sollte genutzt werden? (https://www.delphipraxis.net/126658-web-widget-welche-technik-sollte-genutzt-werden.html)

Matze 30. Dez 2008 10:37


Web-Widget, welche Technik sollte genutzt werden?
 
Hallo zusammen,

ich möchte gerne ein Web-Widget erstellen, das Benutzer über simplen HTML-Code auf ihrer Website einbinden können. Das Widget muss von der MySQL-DB meines Servers Dinge auslesen und darstellen, jedoch auch die Interaktion über die Website bieten, über die es eingebunden ist. Diese Interaktionen sollen zurück an meinen Server geschickt und in die MySQL-DB eingetragen werden.
Es handelt sich dabei lediglich um einen Link-Klick.

Ich sehe darin 3 Möglichkeiten:

- Java
- JavaScript
- Flash

Mit Flash kenne ich mich gar nicht aus und kenne auch keine kostenlose IDE, wobei die grafischen Spielereien natürlich nett sind. Die Einarbeitung in Flash stelle ich mir langwierig vor.
Java wäre auch Neuland für mich. Die Syntax ist kein Problem, aber fürs Web habe ich noch nie etwas mit Java gemacht.

JavaScript wäre das, was ich noch am ehesten kann. Nur weiß ich nicht, ob mein Vorhaben damit lösbar ist. Mit AJAX kein Problem, aber das habe ich bisher auch nur auf dem eigenen Server verwendet und nicht als externes Skript gestaltet.

Es wäre schön, wenn man dem Benutzer gewisse Freiheiten lassen könnte:

- Farbgestaltung
- Höhe und Breite des darzustellenden Dingens

Das kann man vielleicht über Variablen übergeben lassen:

Code:
<script type="text/javascript">
    ColorX = '#FF0000';
    // ...
</script>
<script type="text/javascript" src="...">
Wie geht man denn an so etwas heran und welche Technik eignet sich dafür am besten?

Einen guten Rutsch wünscht
Matze

Matze 2. Jan 2009 08:50

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Da ich befürchte, an die Grenzen von AJAX zu stoßen, schiebe ich das hier mal etwas nach oben ...

alcaeus 2. Jan 2009 08:57

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Moin,

ich beantworte das zweite Problem aus deinem anderen Thread einfach hier. Mit AJAX wirst du natuerlich an die Grenzen stossen, aber du kannst es ja immer noch auf die gute alte Tour machen: mit Frames. Die Idee ist folgende: der Widget-Code enthaelt erstellt ein iframe-Objekt, in das er die entsprechende URL fuer die Grafik/whatever reinsetzt. Sobald die Seite fertig geladen ist (onload vom iframe) suchst du dir die Dimensionen der Seite raus und aenderst die Groesse des iframes so dass die Seite ohne Scrollbars reinpasst. Mit dem richtigen Styling sieht das dann so aus als ob das Widget direkt embedded wurde. Die Werbung von Google macht es ja auch nicht anders ;)

Greetz
alcaeus

Matze 2. Jan 2009 09:05

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Hi Andy,

danke, aber da kann ich dann keine Interaktion mit dem User machen.

Ich möchte über das Widget Umfragen anzeigen, sodass die Besucher der Website, auf der das Widget eingebunden ist, auch von dort aus an einer Umfrage teilnehmen können und das möglichst ohne auf meine Seite weitergeleitet zu werden.

Grüße

QuickAndDirty 2. Jan 2009 09:09

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Was du suchst ist vieleicht JAVAFX.

alcaeus 2. Jan 2009 09:09

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Er ist bereits auf deiner Seite, und ohne es jetzt getestet zu haben: im iframe koennten sogar AJAX-Requests auf deine Seite funktionieren, ich weiss aber grad nicht wie in diesem Fall die Cross-Request-Policy der Browser aussieht. Falls AJAX nicht geht musst du es halt ueber einen ganz stinknormalen HTTP-Request machen...

Falls das nicht passt, musst du dann tatsaechlich auf eine andere Technologie umsteigen ;)

Greetz
alcaeus

Matze 2. Jan 2009 09:13

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Ach jetzt verstehe ich. Im iFrame zeige ich meine Seite an und kann dort normal AJAX nutzen. Hm das wäre vielleicht eine Notlösung, denn von iFrames halte ich im Allgemeinen nicht viel.
Der "stinknormale HTTP-Request", wie würde der aussehen? Ein Formular per POST? Denn das wäre glaub nicht so der Hit.

JAVAFX kann ich mir mal ansehen, doch wäre mir etwas anderes, was ich kenne, lieber. Dann muss ich mich nicht so lange einarbeiten. ;) Aber danke für den Hinweis.

Grüße

Phoenix 2. Jan 2009 09:15

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Das Javascript das im iFrame geladen ist kann (selbsverständlich) nur mit dem Server kommunizieren, von dem der iFrame-Content geladen wurde. Allerdings kann es aus dem iFrame heraus natürlich auch Funktionen / Methoden im Parent ausführen.

Aber:
Wenn Du ein Javascript von einem anderen (von Deinem) Server lädst, dann sollte dieses Script auch nur auf Deinen Server zugreifen können. Google Analytics lädt doch auch nur ein JS nach und sendet Ergebnisse zurück an Google...

Matze 2. Jan 2009 09:20

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Zitat:

Zitat von Phoenix
Wenn Du ein Javascript von einem anderen (von Deinem) Server lädst, dann sollte dieses Script auch nur auf Deinen Server zugreifen können.

Wenn ich das auf einem fremden Server einbinde:

Code:
<script type="text/javascript" src="http://myserver.com/widget_poll.js"></script>
Dann kann ich per AJAX leider keine Daten mit myserver.com austauschen. Falls du das meinst. Der AJAX-Code befindet sich in der widget_poll.js.

Grüße

alcaeus 2. Jan 2009 09:23

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Moin,

das Problem mit JS im iframe ist eben die Tatsache, dass ich noch auf den Parent zugreifen kann. Ich koennte also parent.document.cookie auslesen und an meinen Server schicken, was nicht so der Brueller ist. Die Frage ist nun, was wurde geblockt: Zugriff auf den Parent oder JS im iframe? Ich tippe eher auf Zweiteres, kanns aber grad net testen ;)

@Phoenix: das "Zurueckschicken" von Informationen an eine andere Seite ist ganz ohne XMLHttpRequest moeglich - und nur da greift ja die XSS-Protection der Browser. Schwieriger wirds nur wenn man etwas zum Server schicken und anzeigen will, da ist man dann entweder auf iframes oder XMLHttpRequest angewiesen. Nachdem Zweiteres nicht darf, bleibt eigentlich nur noch Ersteres uebrig ;)

@Matze: ja, so ein altes langweiliges Formular....du weisst schon. Was ist daran "nicht so der Hit"? Ich wuerde eher mit nem Formular arbeiten als mir mehrere Stunden lang den Kopf zu zerbrechen, wie ich irgendwas erledigen kann.
Was nicht funktioniert ist AJAX, es gibt aber durchaus Moeglichkeiten Informationen zurueckzuschicken.

Greetz
alcaeus

Matze 2. Jan 2009 09:28

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Moin,

na dann versuche ich mal, das mit dem "alten langweiligen Formular" hinzubekommen. Absenden kann ich es ja per JS, damit zum Abstimmen nur ein einziger Klick notwendig ist.
Aber ums iFrame komme ich dann wohl nicht herum, denn die Anzeige der Infos funktioniert über AJAX ja nicht. Also habe ich ein Formular in einem iFrame und da ein iFrame nicht XHTML Strict ist, gefällt mir das nicht sonderlich.
Aber wenn es gar nicht anders geht, werde ich es wohl so machen müssen.

Grüße, Matze

Douglas Quintaine 2. Jan 2009 09:32

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Was hast du denn gegen den guten alten iFrame? Für's CSS-Design sollte man zwar auf Frames verzichten, aber andere Sachen wie du sie planst - da eignen sich Frames doch gut für.

Matze 2. Jan 2009 09:37

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Wie soeben geschrieben sind diese nicht erlaubt bei "XHTML Strict". Und wenn andere Nutzer eine Website so korrekt auslegen (ich versuche es beispielsweise immer), dann würde mein iFrame die W3C-Validierung nicht mehr gewährleisten.

Edit: Gut, wenn ich das per JS erstelle kümmert es W3C nicht, aber das ist dann auch nur so ein Getrickse. ;)

alcaeus 2. Jan 2009 09:40

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Dann gibt es genau eine Loesung: die Seite als Image ausliefern und ueber JS das Image einbinden. Da kannst du auch Daten an deinen Server schicken:
Code:
var myImage = new img();
img.src = 'http://myserver.com/foo.php?id='. myID;
Alles andere ist dann eben nicht mehr HTML Strict oder durch Browser Policies verboten. Da bleibt dann echt nur noch ein Java- oder Flash-Applet ;)

Greetz
alcaeus

Matze 2. Jan 2009 09:42

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Das mit dem Image sieht ja interessant aus, auch wenn ich nicht weiß, wie das gehen soll. *g*

Ja, Flash wäre vermutlich das beste, aber dann müsste ich erst einmal 150€ für die Studentenversion ausgeben und mich dann vermutlich Wochen lang in Flash einarbeiten. :(

Grüße

alcaeus 2. Jan 2009 09:56

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Joa, so ist das Leben: hart aber ungerecht :mrgreen:

Mein Tipp: scheiss auf XHTML Strict fuer diese Sache (ist ja schliesslich nicht dein Problem wenn sich jemand mit dem Code seine Seite zerhaut, die Wahrscheinlichkeit dass es irgendwelche Ads schon gemacht haben ist eh gross) und machs ueber ein iframe, in welchem ein Formular liegt (im onclick eines Elements das Formular abzuschicken ist ja kein Problem mehr). Wenn du ganz lustig bist kannst du ja zwei iframes erstellen und diese "weich" ueberblenden um den kompletten Page-Reload zu vermeiden. So sparst du dir aber noch den Grossteil des Aergers und kommst relativ schnell zum Ziel.

Greetz
alcaeus

Matze 2. Jan 2009 09:57

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Gut danke. Dann versuche ich das mal. Nur die Scrollbalken sehen bescheuert aus, stelle ich gerade fest. Aber einen Tod muss ich sterben.

Grüße

alcaeus 2. Jan 2009 09:58

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Code:
<iframe scrolling="no">...</iframe>
Kurze Zwischenfrage: ist dein anderes Problem noch aktuell oder hat sich das erledigt?

Greetz
alcaeus

Matze 2. Jan 2009 10:01

Re: Web-Widget, welche Technik sollte genutzt werden?
 
Tatsache das geht, danke. Ich darf mich nicht zu sehr von der DP-Shoutbox irritieren lassen. Da sehe ich nämlich immer einen horizontalen Scrollbalken, wobei scrolling auch auf yes steht. :stupid:

Das andere Problem müsste sich nun erübrigt haben. Ich schreibe dort noch einen Hinweis hin.

Grüße (ich markiere die Frage vorerst mal als "erledigt")


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz