Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Odkaz z HTML na spuštění exe přes javascript

Dobrý den,
potřeboval bych radu od javascript guru.

Potřebuji na intranetu v lokální síti z html stránky otevírat poměrně rozsáhný pdf soubor na konkrétní stránce.

V Internet Exploreru to problém není a odkaz

<a href="dokument.pdf#page=562">Otevři na straně 562</a>

při povolení "Úpravy - Předvolby (CTRL-K) - Internet - zaškrtnout položku Zobrazit PDF v prohlížeči" v AdobeReader funguje.

Problém je ve firefox.
Našel jsem řešení, jak otevřít exe v firefox bez ActiveX z HTML včetně parametru. Funguje to ale pouze tehdy, když je v parametru pouze název otevíraného pdf a není tam řetězec

"/a \"page=562\" "+

S tímto řetězcem to končí chybou "Název souboru či adresáře nebo jmenovka svazku je nesprávná". Přímý odkaz na požadovanou stránku, který potřebuji do JS zadat, má tvar

"C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe" /A "page=562" dokument.pdf

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test</title>
<script type="text/javascript">
function RunExe()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

var exe = window.Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
exe.initWithPath("C:\\Program Files\\Adobe\\Reader 10.0\\Reader\\AcroRd32.exe");

var run = window.Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess);
run.init(exe);

var parameters = ["/a \"page=562\" "+"C:\\Users\\user\\Desktop\\dokument.pdf"];
// var parameters = ["C:\\Users\\user\\Desktop\\dokument.pdf"];   // toto funguje, pdf se otevře, ale nezobrazí požadovanou stranu protože není zadaná
run.run(false, parameters,parameters.length);
}
</script>
</head>
<body>
<a href="#" onclick="javascript:RunExe();">strana 562</a>
</body>
</html>

Můžete mi prosím někdo poradit, jak tam ten parametr dostat, aby to bylo funkční?

Děkuji.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Je nepochopiteľné jak nekoho múže toto napadnúť, absolútne popretie bezpečnosti. 20 rokov sa plátaj…
Joseph 27.03.2012 16:47
Joseph
Možná by příště chtělo před podobným odsudkem přečíst to, co bylo napsáno hned ve druhé větě. Vzhled…
yorg 28.03.2012 07:23
yorg
Asi se mnou nebudeš souhlasit, ale pro prohlížeč je jedno jestli je to v lokální síti nebo na intern…
ERASER 28.03.2012 13:03
ERASER
Náš pravdu, Nesouhlasím. Neřeším prioritně bezpečnost, ani to, jestli to je nebo není na intranetu (… nový
yorg 28.03.2012 14:27
yorg
IP adresy ve firmě jsou navíc z bezpečnostního důvodu výhradně statické (nejsou přidělované přes DHC… nový
ms 28.03.2012 18:58
ms
Potřebuji na intranetu v lokální síti z html stránky otevírat poměrně rozsáhlý pdf soubor na konkrét… nový
ERASER 28.03.2012 19:28
ERASER
Potřebuji na intranetu v lokální síti z html stránky otevírat poměrně rozsáhlý pdf soubor na konkrét…
ms 28.03.2012 13:25
ms
K první části - viz odpověď výše. Ke druhé části zopakuji - Nemám-li co poradit, raději mlčím. nový
yorg 28.03.2012 14:29
yorg
Ehm, je to vaše věc, stačí když vás i s Kalouskem a hromadou dalších živíme! nový
ms 28.03.2012 18:50
ms
Šikula, umí klikat. Naštěstí ale existují i lidé, kteří umí kromě klikání i poradit. poslední
yorg 29.03.2012 10:46
yorg
Ziaden normalny prehliadac ti nespusti exe ani keby si sa pokrajal, ptz to je jedna zo zakladnych be… nový
MM.. 28.03.2012 19:37
MM..
Nemusím se krájet ale spustí. Pro FF funguje skript doplněný díky radě losa. Plugin jsem z tohoto d… nový
yorg 29.03.2012 10:43
yorg
Pokud netrváte na otevření Acrobat Readeru, ale stačí otevřít manuál v prohlížeči v iframe, tak by m… nový
hvězd 28.03.2012 19:49
hvězd
Parametre nemáš posielať všetky v jednom reťazci, ale majú byť normálnymi prvkami toho poľa paramete… nový
los 28.03.2012 20:23
los
Přesně tuto odpověď jsem potřeboval. Děkuji. Funguje to. nový
yorg 29.03.2012 10:39
yorg

Možná by příště chtělo před podobným odsudkem přečíst to, co bylo napsáno hned ve druhé větě. Vzhledem k tomu, že příspěvek byl dlouhý a patrně nebylo možné ho celý přečíst, tak to zopakuji.

Potřebuji na intranetu v lokální síti z html stránky otevírat poměrně rozsáhlý pdf soubor na konkrétní stránce.

A aby to bylo jednodušší přečíst a pochopit, tak jsem si dovolil podstatné zvýraznit.

Takto to je jen příspěvek proto, aby byl. Nebo lépe, spíše vzor toho, jak by odpověď vypadat neměla. Vzhledem k tomu, že se tento web jmenuje poradna, tak by mělo být pravidlem Nemám-li co poradit, raději mlčím.

Náš pravdu, Nesouhlasím. Neřeším prioritně bezpečnost, ani to, jestli to je nebo není na intranetu (i když to na něm běží). Řeším jen a pouze problém s Javascriptem.

Jinak pro to, abych tuto planou diskuzi utnul se trošku více rozepíšu.

Ten Intranetový server běží na jednom z počítačů v kanceláři na W7 pod IIS 7.5. Pro neznalé, co to IIS je, první nalezený odkaz s postupem instalace IIS. V IIS jsou výčtem uvedené povolené IP adresy. Takže pouze z nich se k tomu html někdo dostane. IP adresy ve firmě jsou navíc z bezpečnostního důvodu výhradně statické (nejsou přidělované přes DHCP) a celá počítačová síť je chráněna firewallem, který nespravuje nějaký Tomáš Marný, ale stálá služba 24/7. A ten PDF dokument je asi 2000 stránkový manuál, do kterého se poměrně často leze. A proto, aby bylo možné se v něm lépe orientovat, byl obsah naskenován a byla z něho vytvořená html stránka, která funguje v IE. Jeden kolega ale nemá z nějakého důvodu IE rád a používá výhradně FF. A protože jsme kolegové a ne protivníci, tak jsem mu chtěl použití ulehčit.

Takže ještě jednou, neřeším bezpečnost (protože ji vzhledem k uvedenému ani řešit nemusím), ale řeším problém s javascriptem. Proto bych tuto nesmyslnou debatu o bezpečnosti rád ukončil a poprosil někoho znalého javascriptu o sdělení (bez IMHO popřípadě neurčitého slůvka naštěstí), zda to skutečně nejde nebo se jedná "jen" o nesprávný způsob zápisu.

V případě, že to skutečně nejde, tak náhradní řešení ze zástupcem "C:\Program Files\Internet Explorer\iexplore.exe" manual.html funguje, jen se kolega bude muset s tím modrým ečkem IE nějak smířit.

IP adresy ve firmě jsou navíc z bezpečnostního důvodu výhradně statické (nejsou přidělované přes DHCP) a celá počítačová síť je chráněna firewallem, který nespravuje nějaký Tomáš Marný, ale stálá služba 24/7

Skvělé! Teď jsem zcela bez obav třeba o osobní údaje spravované Ministerstvem financí České republiky v čele s Kalouskem! Kdekoliv jinde je to zaměstnavatel, který vybírá aplikační software, nikoliv zaměstnanec!

Potřebuji na intranetu v lokální síti z html stránky otevírat poměrně rozsáhlý pdf soubor na konkrétní stránce.

Neřeším prioritně bezpečnost, ani to, jestli to je nebo není na intranetu.

Nějak to nedává smysl :-|

Potřebuji na intranetu v lokální síti z html stránky otevírat poměrně rozsáhlý pdf soubor na konkrétní stránce.

Aby to bylo jednodušší: intranet je takový Internet v malém! Spustit skrze webový prohlížeč spustitelný soubor je bezpečnostní díra jak vrata!
Co se týče lokálních sítí, pak větší nebezpečí pro jednotlivé stanice jsou jiní klienti v síti, než útok ze sítě Internet.

Vzhledem k tomu, že se tento web jmenuje poradna, tak by mělo být pravidlem Nemám-li co poradit, raději mlčím.

Ano, aneb jinak: "Chci mermomocí v podstatě provést úspěšně útok na jinou síťovou stanici v lokální síti a komu se to nezdá, nechť laskavě drží hubu!"

Ziaden normalny prehliadac ti nespusti exe ani keby si sa pokrajal, ptz to je jedna zo zakladnych bezpecnostych vlastnosti prehliadaca.

O zobrazenie pdf v okne FF sa stara adobe plugin, jake ma moznosti otvarania na konkretnej stranke neviem, skus googlit. Ale takymto sposobom (otvaranim pdf na stranke ked mal adobe dieru v readeri) sa istu dobu siril dost nebezpecny vir, tak by som sa necudoval keby to nefungovalo, a bolo by to len a len dobre. Ale mozno nejaky sposob na to je.

Nemusím se krájet ale spustí.

Pro FF funguje skript doplněný díky radě losa. Plugin jsem z tohoto důvodu zatím nezkoušel, ale je to dobrá rada, díky za ní.

Pro IE funguje skript využívající ActiveX.

Parametre nemáš posielať všetky v jednom reťazci, ale majú byť normálnymi prvkami toho poľa parameters. Takže vytvorenie poľa parameters by malo vyzerať takto:

var parameters = ["/a", "page=562", "C:\\Users\\user\\Desktop\\dokument.pdf"];

Zpět do poradny Odpovědět na původní otázku Nahoru