• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przekierowywanie - HTA - JavaScript

Object Storage Arubacloud
0 głosów
197 wizyt
pytanie zadane 1 lutego 2023 w HTML i CSS przez pj-1024 Użytkownik (670 p.)

Dzień dobry.
Od dłuższego czasu zajmuję się aplikacjami HTML (.hta). Kiedy robiłem pewną aplikację, natknąłem się na następujący błąd. A mianowicie, gdy robiłem przycisk, który wyświetla informacje o aplikacji, twórcy itp., chciałem, by po naciśnięciu przycisku zawartość okna się zmieniała. Dałem do zdarzenia onclick kod:

location.href = 'about.hta';

Jednak gdy się to zrobiło, wyskakiwało nowe okno IE i się pytało czy otworzyć plik, zapisać czy zapisać jako (Dodałem NAVIGABLE = "yes" do HTA:APPLICATION). Nie wiem jak to zrobić. Poproszę o pomoc. Nigdzie w internecie nie znalazłem odpowiedzi.

Z góry dziękuję za odpowiedź.

1 odpowiedź

0 głosów
odpowiedź 2 lutego 2023 przez VBService Ekspert (253,400 p.)
wybrane 2 lutego 2023 przez pj-1024
 
Najlepsza

AFAIK z poziomu załadowanego dokumentu hta za pomocą location.href nie załadujesz pliku hta, w dużym uproszczeniu jest to polecenie javascript (a js nie rozpoznaje rozszerzenia hta jako plik html) uruchamiane z poziomu przeglądarki IE, ponieważ hta korzysta z silnika IE, to daje nam możliwość użycia też vbscript.

Może np. spróbuj użyć MsgBox

dowolna_nazwa.hta

<!--
    ***************************************************************
    *       Author: pj-1024                                       *
    *      Contact: adres.email@domena.pl                         *
    *    Greetings: VBService ;-)                                 *
    *                                                             *
    *  Description:                                               *
    *                                                             *
    *  Lorem ipsum dolor sit amet, consectetur adipiscing elit,   * 
    *  sed do eiusmod tempor incididunt ut labore et dolore       *
    *  magna aliqua. Ut enim ad minim veniam, quis nostrud        *
    *  exercitation ullamco laboris nisi ut aliquip ex ea         *
    *  commodo consequat. Duis aute irure dolor in reprehenderit  *
    *  in voluptate velit esse cillum dolore eu fugiat nulla      *
    *  pariatur. Excepteur sint occaecat cupidatat non proident,  *
    *  sunt in culpa qui officia deserunt mollit anim id est.     *
    ***************************************************************
-->

<hta:application
    id="oApp"
    applicationname="Nazwa aplikacji"
    border="dialog"
    borderstyle="raised"
    contexmenu="no"
    caption="yes"
    icon="calc.exe"
    innerborder="no"
    maximizebutton="no"
    minimizebutton="yes"
    navigable="no"
    scroll="no"
    selection="no"
    showintaskbar="yes"
    singleinstance="yes"
    sysmenu="yes"
    version="1.0.0"
    windowstate="normal"
 />

<!DOCTYPE html>
<html lang="pl">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=ie9">

    <title></title>

    <link href="style/style.css" rel="stylesheet">

    <script language="vbscript">
      Sub dialogAbout
        Dim sText, sTitle
        
        sText = " Author:  pj-1024" & vbCrLf & _
                "Contact:  adres.email@domena.pl" & vbCrLf & vbCrLf & _
                "Lorem ipsum dolor sit amet, consectetur adipiscing elit," & vbCrLf & _
                "sed do eiusmod tempor incididunt ut labore et dolore" & vbCrLf & _
                "magna aliqua. Ut enim ad minim veniam, quis nostrud"                
                
        sTitle = "About  ::  " & applicationFullTitle
        
        MsgBox sText, vbInformation + vbOkeyOnly, sTitle
      End Sub

      Function applicationTitle
        applicationTitle = oApp.applicationname
      End Function
      
      Function applicationVersion
        applicationVersion = oApp.version
      End Function

      Function applicationFullTitle
        applicationFullTitle = applicationTitle & "  v." & applicationVersion
      End Function     
    </script>

    <script language="javascript">
      var APP_WIDTH  = 800, 
          APP_HEIGHT = 700;
          
      window.resizeTo(APP_WIDTH, APP_HEIGHT);
      document.title = applicationTitle();

      var APP_LEFT = (screen.availWidth - APP_WIDTH) / 2,
          APP_TOP  = (screen.availHeight - APP_HEIGHT) / 2;      

      window.moveTo(APP_LEFT, APP_TOP);
    </script>
  </head>
  <body>
    <div id="main">
    
    </div>
    <div id="footer">
      <button id="about" onclick="dialogAbout()">about</button>
    </div>
  </body>
</html>

 

style.css

body {
  width: 100%;
  height: 100%;
  margin: 0;
  background-color: black;
  overflow: hidden;
}

#main {
  height: 93%;
}
#footer {
  position: relative;
  height: 36px;
  width: 100%;
  border-top: 1px solid midnightblue;
  padding: 10px;
}
#footer button#about {
  position: absolute;
  right: 20px;
  font: normal 16px monospace;
  text-decoration: none;  
  color: white;
  background-color: transparent;
  border: 0;
  cursor: pointer;
}

 

lub np. taki zapis

dowolna_nazwa.hta

<!--
    ***************************************************************
    *       Author: pj-1024                                       *
    *      Contact: adres.email@domena.pl                         *
    *    Greetings: VBService ;-)                                 *
    *                                                             *
    *  Description:                                               *
    *                                                             *
    *  Lorem ipsum dolor sit amet, consectetur adipiscing elit,   * 
    *  sed do eiusmod tempor incididunt ut labore et dolore       *
    *  magna aliqua. Ut enim ad minim veniam, quis nostrud        *
    *  exercitation ullamco laboris nisi ut aliquip ex ea         *
    *  commodo consequat. Duis aute irure dolor in reprehenderit  *
    *  in voluptate velit esse cillum dolore eu fugiat nulla      *
    *  pariatur. Excepteur sint occaecat cupidatat non proident,  *
    *  sunt in culpa qui officia deserunt mollit anim id est.     *
    ***************************************************************
-->

<hta:application
    id="oApp"
    applicationname="Nazwa aplikacji"
    border="dialog"
    borderstyle="raised"
    contexmenu="no"
    caption="yes"
    icon="calc.exe"
    innerborder="no"
    maximizebutton="no"
    minimizebutton="yes"
    navigable="no"
    scroll="no"
    selection="no"
    showintaskbar="yes"
    singleinstance="yes"
    sysmenu="yes"
    version="1.0.0"
    windowstate="normal"
 />

<!DOCTYPE html>
<html lang="pl">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=ie9">

    <title></title>

    <link href="style/style.css" rel="stylesheet">
    <link href="style/animate.min.css" rel="stylesheet">
    
    <script src="scripts/application.vbs" type="text/vbscript"></script>
    <script src="scripts/dialog.vbs" type="text/vbscript"></script>

    <script language="javascript">
      var APP_WIDTH  = 800, 
          APP_HEIGHT = 700;
          
      window.resizeTo(APP_WIDTH, APP_HEIGHT);
      document.title = applicationTitle();

      var APP_LEFT = (screen.availWidth - APP_WIDTH) / 2,
          APP_TOP  = (screen.availHeight - APP_HEIGHT) / 2;      

      window.moveTo(APP_LEFT, APP_TOP);
    </script>
  </head>
  <body>
    <div id="main">
    
    </div>
    <div id="footer">
      <button id="about" onclick="dialogAbout()">about</button>
    </div>
  </body>
</html>

application.vbs

Function applicationTitle
  applicationTitle = oApp.applicationname
End Function

Function applicationVersion
  applicationVersion = oApp.version
End Function

Function applicationFullTitle
  applicationFullTitle = applicationTitle & "  v." & applicationVersion
End Function 

dialog.vbs

Sub dialogAbout
  Dim sText, sTitle

  sText = " Author:  pj-1024" & vbCrLf & _
          "Contact:  adres.email@domena.pl" & vbCrLf & vbCrLf & _
          "Lorem ipsum dolor sit amet, consectetur adipiscing elit," & vbCrLf & _
          "sed do eiusmod tempor incididunt ut labore et dolore" & vbCrLf & _
          "magna aliqua. Ut enim ad minim veniam, quis nostrud"                

  sTitle = "About  ::  " & applicationFullTitle

  MsgBox sText, vbInformation + vbOkeyOnly, sTitle
End Sub

 

 

możesz też spróbować zrobić cos na wzór ModalBox lub też ModalBox, który zawiera <iframe>

<div id="example">
  <div>
    <iframe src="about.htm" application="yes">
  </div>
</div>

 

 

 

BTW, hta oferuje api pod nazwą DHTML, możesz też spróbować: Create a New Window Using JavaScript, ale wtedy about musi być about.html.

 

P.S. Możesz też z hta używać np.:

Podobne pytania

0 głosów
3 odpowiedzi 134 wizyt
pytanie zadane 4 stycznia 2016 w HTML i CSS przez gift256 Początkujący (280 p.)
+2 głosów
1 odpowiedź 134 wizyt
pytanie zadane 8 sierpnia 2021 w JavaScript przez lysywilkoklak Początkujący (290 p.)
+1 głos
1 odpowiedź 126 wizyt
pytanie zadane 16 lutego 2019 w HTML i CSS przez niezalogowany

92,579 zapytań

141,427 odpowiedzi

319,654 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...