thunderstorm Geschrieben 27. Oktober 2010 Teilen Geschrieben 27. Oktober 2010 Hi, Ich habe folgendes: Ich habe eine Page in der Koordinaten (northing und easting, sowie zoomfaktor, einen Titel und ein Text Argument.... northing / easting: ost und nord wert (6stellig) zoomfaktor: wie nahe die Startgrösse der Karte gezeigt wird. titel: Titel für die Beschreibung des ViewPoints text: Text für die Beschreibung des ViewPoints Das alles soll ich per Text-Link in ein leeres PopUp Fenster (popup.html) übergeben. Dort wird dann mittels javascript die Map geöffnet usw. Ich habe also im HEAD der start.html Datei bis jetzt folgenden Script-Code: ... <script type="text/javascript"> function openPopup(url, northing, easting, zoomLevel, title, htmlText) { // *** PopUp oeffnen... newwindow=window.open(url,'popup','height=800,width=1100,left=100,top=50,resizable=yes,location=yes,status=no,scrolling=no'); newwindow.focus(); } </script>... UND IM BODY Bereich:... ... <a href="javascript:openPopup('popup.html', 600000, 174015, 3, "TestTitel","Text Text ist ein Fuelltext...");">Ortschafts-Namen</a>... Meine Fragen: Ich muss diese Werte (Klammer im Link Tag) in das neue Fenster übergeben UND... ich muss diese dann in das Javascript einfliessen lassen damit ich die Map öffnen kann. Wer kann mir helfen damit ich diese Werte in das PopuP kriege? Das Script im anderen fenster kan ich bei bedarf liefern aber damit man die MAP sehen kann, muss diese registriert sein, deshalb würde das wahrscheinlich nicht viel bringen. THANX im Voraus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 29. Oktober 2010 Teilen Geschrieben 29. Oktober 2010 (bearbeitet) Ich würde bei Klick auf den Link eine Funktion aufrufen und die Parameter mit übergeben. In dieser Funktion erstellst/öffnest du dann das Popupfenster mit einem Div-Element oder so und in dieser Funktion forderst du auch mit den übergebenen Parametern die Karte an. Nach dem Anfordern musst du dann die Karte nur noch dem Div-Element im Popup zuweisen. In etwa so: // Ist dann kein wirklicher Link mehr <DIV onclick="meineFunktion(600000, 174015, 3, "TestTitel","Text Text ist ein Fuelltext")">Ortschafts-Namen</DIV> function meineFunktion(northing, easting, zoomLevel, title, htmlText) { // In der Funktion das Popup öffnen newwindow=window.open(popup.html,'popup','height=800,widt h=1100,left=100,top=50,resizable=yes,location=yes, status=no,scrolling=no'); newwindow.focus(); To-Do: In der Funktion auch die Karte anfordern // Karte dem Popup Div Element zuweisen (je nach Format) document.MAPDIV.value = Karte oder document.MAPDIV.src = Karte.img } MAPDIV ist dann das DIV-Element im Popup.html <DIV id="MAPDIV"></DIV> oder falls die Karte ein IMG ist: <img id="MAPDIV" src="image.jpg" /> Ich bin mir nicht sicher, aber ich glaube, es kann nur ein serverseitiges Script Parameter entgegen nehmen, JavaScript ist aber clientseitig. Du kannst dir dazu ja auch mal diesen Link anschauen: http://aktuell.de.selfhtml.org/artikel/javascript/wertuebergabe/ Bearbeitet 29. Oktober 2010 von Sassy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thunderstorm Geschrieben 29. Oktober 2010 Autor Teilen Geschrieben 29. Oktober 2010 Hi Sassy Danke Dir für die Ausführliche Antwort. Ich bin gerad dabei ins Weekend zu gehen, aber werde das gleich am Montagmorgen versuchen zu realisieren. Ich werde dann noch Feedback geben sobald ich es habe....oder wenn ich nicht klar kommen sollte :-) Dir (und allen anderen) ein schönes und sonniges Weekend thunderstorm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thunderstorm Geschrieben 1. November 2010 Autor Teilen Geschrieben 1. November 2010 Nach dem Anfordern musst du dann die Karte nur noch dem Div-Element im Popup zuweisen. In etwa so: // Ist dann kein wirklicher Link mehr <DIV onclick="meineFunktion(600000, 174015, 3, "TestTitel","Text Text ist ein Fuelltext")">Ortschafts-Namen</DIV> ... Ich bin mir nicht sicher, aber ich glaube, es kann nur ein serverseitiges Script Parameter entgegen nehmen, JavaScript ist aber clientseitig. Du kannst dir dazu ja auch mal diesen Link anschauen: Javascript-Wertübergabe zwischen HTML-Dokumenten Hi, Ich bin grad dran das anzuschauen. Leider bin ich nicht der Javascript Guru und ich habe gewiisse Probleme. 'Leider' kannst Du die Maps eben nicht sichtbar machen weil sie auf eine Domain registriert sind. Aber den Code kannst Du sehen und evtl. den (oder eher die Fehler sehen). Damit ich das alles richtig verstehe und dass wir beide vom selben sprechen und das selbe meinen hier nochmals alles Fakten. Ausgangslage: Ich habe eine Web-Page und dort liegt ein Link der die Argumente übergibt. Das sind im Wesentlichen... Längen- und Breitengrade, Zoomlevel, und Texte (die Anzahl der Argumente ist nicht viel grösser und es sind entweder Zahlen oder Text). Diese sind für das Aufbauen einer Map. Da ist zum Beispiel irgendein Ereignis in der Schweiz und wenn man auf den Link klickt wird der besagte Kartenausschnitt in einem Popup geöffnet und an der richtigen Stelle erscheint ein Viewpoint/Marker. Wenn man den anklickt dann erscheint ein kleines Popup mit Infos zu dieser Region (. Dieser Code funktioniert auch schon ABER aben nur wenn die Koordinaten in einer Textbox in einem Form sind und ich die Argumente/werte mit der URL weitergebe. Dein Vorschlag habe ich genommen und mein Script reingenommen: der Code sieht bis jetzt in etwa so aus (längen und Breitangrade sind hier noch mit den Variablen aus dem Form versehen. Da müsste ich ggf. auch noch schauen): <body> [B]<DIV [/B]onclick="meineFunktion(600000, 174015, 3, "TestTitel","Text Text ist ein Fuelltext")">Ortschafts-Namen[B]</DIV>[/B] ...und gleich anschliessend... <script language='Javascript'> function meineFunktion(northing, easting, zoomLevel, title, htmlText) { // In der Funktion das Popup öffnen newwindow=window.open(popup.html,'popup','height=800,widt h=1100,left=100,top=50,resizable=yes,location=yes, status=no,scrolling=no'); newwindow.focus(); /* PopUp das sich beim öffnen des Windows mit der MAp autom. auch öffnet..... mehr Infos zu anderen Attributen: siehe ... http://www.mapfish.org/mapfishapidoc/files/mapfish_api-js.html */ // kreiert eine Map geo8 = new geoadmin.API(); geo8.createMap({ div: 'mymap', easting: liste.easting, northing: liste.northing, zoom: 4, layers: 'ch.swisstopo.hiks-dufour,ch.swisstopo.gg25-gemeinde-flaeche.fill', layers_indices: '2,4', layers_opacity: '0.2,0.7', bgLayer: 'pixelmaps-gray', bgOpacity: 40 }); // Marker kreieren.... geo8.showMarker({ iconPath: 'http://[Domainname]/.../images/pinNadel1.png', fillOpacity: 1.0, graphicHeight: 70, graphicWidth: 30, easting: liste.easting, northing: liste.northing, recenter: true, html:' Säntis 2502 m.ü.M. (Immer eine Reise wert!)<img src="[B][URL][/B]/TestBild.png" />', title: "Simple Popup" }); /* Marker PopUp: Mit Klick auf den Marker wird das geöffnet. mehr Infos zu anderen Attributen: siehe ... http://www.mapfish.org/mapfishapidoc/files/mapfish_api-js.html#showPopup(options) */ geo8.showPopup({ easting: liste.easting, northing: liste.northing, width: 220, html: "<h1>TestTitel</h1><br>xPopup ein Fuelltext fuer Beschreibungen", title: "PopupTitel" }); } </script> </body> Ich habe den obenstehenden Code für das Erstellen der Map über dem jeweiligen Abschnitt kommentiert. Das ist derselbe der in meinem vorherigen Beispiel funktioniert hat, stand allerding im PoUp Fenster drin mit einer Zusatzfunktion die die URL ausgelesen hat usw. (kann ich nachliefern wenn gewünscht. Wie gesagt bin ich etwas am Anschlag da ich sonst eigentlich nicht herumcoden muss und ich bin auch ein wenig verzweifelt weil ich nicht mehr weiterkomme. Ich dachte dass in etwa so etwas machen könnte wie .... <script language='Javascript'> function auswertung(){ // PopUp Datei ist var adr = './popup.html?'; //die folgenden ZWEI Zeilen sind wegen des bisherigen Formulares hier var easting = [COLOR="Red"][Wert vom Link einfüllen][/COLOR]; var northing = [COLOR="Red"][Wert vom Link einfüllen][/COLOR]; var zoomlevel = [COLOR="Red"][Wert vom Link einfüllen][/COLOR]; var zoomLevel = [COLOR="Red"][Wert vom Link einfüllen][/COLOR]; var title = [COLOR="Red"][Wert vom Link einfüllen][/COLOR]; var htmlText = [COLOR="Red"][Wert vom Link einfüllen][/COLOR]; [COLOR="Red"]// HIER DAS OEFFNEN DER MAP EINFUEGEN WIE OBEN im SCRIPT...usw [/COLOR] .... newwindow=window.open(adr,'popup','height=800,width=1100,left=100,top=50,resizable=yes,location=yes,status=no,scrolling=no'); newwindow.focus(); ...dann das Popup-Fenster öffnen. Aber dann stehe ich vor dem Problem wie ich den Code, der bis jetzt im PopUp liegt (der Teil der Map vom oberen Script Abschnitt) , hier in den Code reinkriege und ich dann ein "leeres "Dokument öffnen und die Sachen dort einfüllen kann. Das sind ja dann eigentlich nur die DIV mit der Map. Da bin ich aber wohl zu naiv, oder nicht? Kann man bspw. alles in ein frisch erstelltest PopUp geben. Ich meine eines das in der beim Start des Scripts temporär (neu) erstellt wird und danach auch wieder verschwindet wenn man es schliesst? Ich hoffe ich stresse nicht zu sehr, aber es wäre wirklich superlieb wenn Du (oder jemand) mir dabei helfen könnte dass ich das so machen kann. Ich muss es danach noch in ein CMS einbinden und deshalb sollte das PoUp möglichst einfach oder noch besser ein temporäres Fenster sein (um nicht danach alle CMS relevanten Dinge auf im Window zu sehen wie Rahmen und unnötige Sachen wie Footer usw.). Muchas Graccias schon jetzt. thunderstorm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 3. November 2010 Teilen Geschrieben 3. November 2010 Du kannst das was in der Function Auswertung steht mit in die Function meineFunktion packen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 3. November 2010 Teilen Geschrieben 3. November 2010 Eh habs jetzt nur überflogen aber sehe ich das richtig das das einzige Problem darin besteht einer HTML Seite Parameter zu übergeben? Das passiert indem man hinter die URL ein ? anfügt und da dann die Parameter mit einem & separiert. BSP: http://forum.fachinformatiker.de/newreply.php?do=newreply&noquote=1&p=1275801 Die übergebenen Parameter kann man dann mit Javascript einfach auslesen und mit string operationen rausfiltern: SELFHTML: JavaScript / Objektreferenz / location Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.