tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
1974
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    N0ACE N0ACE ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    13
    Schönen guten Morgen zusammen!


    Für eine Intranet-Applikation ist es notwendig, Dateien (vorrangig PDFs), welche sich auf einem eingebundenem Netzlaufwerk befinden, in einem neuen Popup zu öffnen.

    Mein Code dazu schaut so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    function open_popup(_uri)
    {
        // setting width and height for the popup window
        var w = screen.availWidth - 100;
        var h = screen.availHeight - 100;
     
        // setting other params
        var params = 'width=' + w +
            ', height=' + h + 
            ', top=50, left=50, ' + 
            ', resizable=yes, toolbar=no, location=no, directories=no, menubar=no, scrollbars=yes, status=yes';
     
        // open the new window which gets the focus
        popup = window.open(_uri, '', params);
        popup.focus();
    }

    So, nun sieht der Parameter '_uri' wie folgt aus:
    Code :
    1
    
    z:/public/foobar.pdf

    Im IE funktioniert dies auch so, wie es soll, nur kommt beim Firefox folgende Meldung: "Firefox weiß nicht, wie diese Adresse geöffnet werden soll, da das Protokoll (z) mit keinem Programm verknüpft ist".

    Daraufhin habe ich die Links folgendermaßen geändert:
    Code :
    1
    2
    3
    4
    5
    
    # vorher
    z:/public/foobar.pdf
     
    # nachher
    file://z:/public/foobar.pdf

    Weiterhin läuft es im IE so, wie es soll. Diesmal kommt im FF keine Meldung, aber auch keine Regung... Firebug meldet folgenden Error: "uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMJSWindow.open]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://intranet/common.js :: open_popup :: line 317" data: no]"


    Habt ihr eine Idee, wie ich den lieben Feuerfuchs dazu bekomme, Dateien, welche nicht via HTTP erreichbar sind, in einem Popup zu öffnen? Das kuriose ist ja, dass FF die Datei öffnet, wenn ich
    Code :
    1
    
    z:/public/foobar.pdf
    direkt in die Adresszeile eingebe, nur eben mittels window.open will er nicht :/


    Für Eure Hilfe bedanken ich mich voraus!
     

  2. #2
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    Dass IE Vieles anders sieht, weiss man ja. Auch in diesem Fall würd ich sagen, das ist eine "microsoftsche" Erlaubnis, die iA ein Sicherheitsloch ist. Wie wäre es, wenn Du der url per Get-Data den Filenamen mitgibst, also eben nicht die Datei öffnest, sondern eine Seite, wo die PDF-Datei embedded ist.

    http://www.tutorials.de/forum/html/2...einbinden.html

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  3. #3
    N0ACE N0ACE ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    13
    chmee,

    Danke für deinen schnellen Vorschlag!

    Der Code ist straight-forward:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
    <head>
    <title>PDF embed</title>
    <meta http-equiv="content-language" content="de" />
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <style type="text/css">
    #file {
        width:          800px;
        height:         600px;
    }
    </style>
    </head>
    <body>
        <embed id="file" src="<?php echo $_GET['file']; ?>" />
    </body>
    </html>


    Ich habe es versucht, hat aber leider auch nicht geholfen:

    Fall A) embed src="z:/public/foobar.pdf"
    - IE prompt mit der Meldung "Zugriff Verweigert" (kleines Alert-Fenster, welches im Titel "Adobe PDF-Dokument" stehen hat). Danach zeigt er ein weisses Viereck an.
    - FF zeigt nur das weisse Viereck an, ohne Fehlermeldung.

    Fall B) embed src="file://z:/public/oobar.pdf"
    - IE: Selbes Spiel: Fehlermeldung, dann weisses Viereck
    - FF: Zeigt diesmal gar nichts an, noch nicht mal das weisse Viereck.
     

  4. #4
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    War ein bisschen vorschnell Wäre genauso ein Einfallstor, wenn man jegliche Files per embed in die Seite einbauen könnte. Deswegen bin ich positiv überrascht, dass beide Browser den Zugriff verhindern.

    Eine Sache, die ich grad' gelesen habe : Die Verlinkung auf ein Netzlaufwerk oder lokales Laufwerk ist nicht erlaubt. ergo müsstest Du den Datei/Fileserver irgendwie per url definieren können. Also zB als internen ftp-Server aufsetzen oder -wenn möglich- einen Alias im Webordner zu den Daten erstellen. Somit könntest Du anstatt mit Z:/Daten/2009/foo.pdf mit src="/Daten/foo.pdf" darauf zugreifen. Vielleicht kannst Du einfach per ../ dorthin delegieren.. Ich würde auch in dieser embed-Seite (oder schon davor) den absoluten Pfad zur Datei zeigen, welcher -als Bonus- in den Explorer kopert werden könnte.

    Hier noch was zum Lesen : http://www.useit.com/alertbox/open_new_windows.html

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  5. #5
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.363
    Blog-Einträge
    4
    Dann könnte man ja lokale Dokumente auch nicht mit Firefox öffnen, oder?

    Du musst vor "Z:" "file://" anbringen. Das ist das Format anstatt http.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  6. #6
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.629
    Blog-Einträge
    4
    Hat er auch probiert. Fall B.

    Die Seiten, die ich bis Dato gefunden habe, sagen alle auch nur Weniges:

    zB
    Man sollte dem Browser das Weiterleiten zum Viewer mittels eines AddOn überlassen.
    Man sollte den User entscheiden lassen, ob speichern oder anschauen.

    Ich kann es nachvollziehen, dass es nicht gehen sollte, per Scripting (JS) eine lokale Datei aufzurufen. Wobei ich bei einem Link oder einem Redirect wiederum davon ausgehe, dass der Browser die Entscheidung dem User überlässt, wie zu verfahren ist.

    Wie sieht es aus,wenn Du es damit versuchst?

    <?php header($_GET[url]); ?>

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  7. #7
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.363
    Blog-Einträge
    4
    Achso sorry.

    Wenn ich eine Datei von Xampp mit FF öffne ist bei mir die URL:

    file:///C:/xampp/htdocs/index.html

    Mit drei "/" !
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  8. #8
    N0ACE N0ACE ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    13
    Ich habe erneut alle Varianten geprüft, mit folgenden Link-Schemata:

    A) z:/public/foobar.pdf
    B) file://z:/public/foobar.pdf
    C) file:///z:/public/foobar.pdf

    Leider ohne Erfolg: Der IE macht's, der FF nicht.

    chmee, auch der Tipp mit <?php header($_GET[url]); ?> hat leider nur zu einer weissen Seite geführt (ohne Fehlermeldungen o.ä.; nur weiss)...
     

  9. #9
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    ich glaube, ihr müsst da nicht weiter mit den Pfaden herumprobieren, chmee's erste Vermutung traf ja den Nagel schon ausreichend auf den Kopf.

    Es könnte gehen, wenn man das Skript
    1.signiert
    2. ihm durch den User erweiterte Rechte erteilen lässt(UniversalFileRead)

    probiert hab ich das noch nicht, kann also nicht sagen, ob und wie es funktioniert...eine Beschreibung dazu gibts hier: http://www.mozilla.org/projects/secu...d-scripts.html

    Auf was für Client-OS muss diese Anwendung denn überhaupt lauffähig sein, gibt es da Einschränkungen?
     

  10. #10
    N0ACE N0ACE ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    13
    Zitat Zitat von Sven Mintel Beitrag anzeigen
    Moin,
    Es könnte gehen, wenn man das Skript
    1.signiert
    2. ihm durch den User erweiterte Rechte erteilen lässt(UniversalFileRead)

    probiert hab ich das noch nicht, kann also nicht sagen, ob und wie es funktioniert...eine Beschreibung dazu gibts hier: http://www.mozilla.org/projects/secu...d-scripts.html
    Werde ich mir mal in Ruhe anschauen, danke! Bisher sagen mir weder signierte Skripte was, noch UniversalFileRead...

    Zitat Zitat von Sven Mintel Beitrag anzeigen
    Auf was für Client-OS muss diese Anwendung denn überhaupt lauffähig sein, gibt es da Einschränkungen?
    Ausschließlich Win XP. Ich selber arbeite zwar von 'nem Mac aus, aber das ist denen ja Wurscht

    Und 80% haben den IE7, 15% den IE8 und 5% den IE6. Also auf den 6er kann man getrost pfeifen (Anm.: Juhuu)
    Geändert von N0ACE (10.09.09 um 12:02 Uhr)
     

Ähnliche Themen

  1. lokale Seite soll lokale Datei öffnen
    Von msycho im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 26.10.07, 13:34
  2. Mehrere Fenster mit Window.open öffnen
    Von pchilfe im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 03.01.06, 16:13
  3. window.open dann das window.close
    Von kinsh im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 05.10.05, 16:28
  4. window.open und .close + refrech nachfolgendes window
    Von Tetsuo im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 21.02.05, 00:13
  5. Antworten: 8
    Letzter Beitrag: 11.11.04, 09:53