Sziasztok!
Egy böngészőben futó (kliens oldali) alkalmazást fejlesztek, amihez XSLT 2.0-ra van szükségem, ezért a Saxon-CE-t próbálom beüzemelni.
Firefox és IE alatt működik, de Chrome alatt nem elérhetőek a Saxon.* függvények.
Adott egy html oldal, amiben így töltöm be a Saxon-CE modult:
script type="text/javascript" src="Saxonce/Saxonce.nocache.js"
Van egy saját JS file-om, hogy ne a fenti html file-ban legyen a sok JS kontent:
script type="text/javascript" src="akarmi.js"
Chrome alatt az utóbbi JS-ben nem működnek a Saxon eljárásai/függvényei. Egyébként a Netbeans IDE is aláhúzza, mint nem deklarált változó.
A kérdésem az lenne, hogy miként kell szabályosan "beimportálni" 3rd party JS modulokat, hogy mindenhol elérhető legyen?
Köszi!
- 1244 megtekintés
Hozzászólások
Elvileg jól csinálod, console logban mit látsz? Esetleg tudnál mutatni valahol egy feltelepített változatot, ami nem működik?
- A hozzászóláshoz be kell jelentkezni
Chrome console-jaban ilyen hibabol van ketto:
Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.
at file:///C:/cygwin/akarmi.../Saxonce/6D08C01821381D35BD12009B44D2D65D.cache.html:1:106
JS-bol pedig ilyen exceptiont kapok el:
ReferenceError: Saxon is not defined
Most ez vmi szigoru Chrome beallitas lenne? A hivatkozott file egy konyvtarral melyebben van mint a tobbi (lokal filerendszeren).
Nincs kint neten, mivel ez csak egy "kliens" alkalmazas lenne.
- A hozzászóláshoz be kell jelentkezni
webszerveren keresztül jó lesz, olyat a nebeans is tud inditani. A baj hogy a chrome nem engedi a file:// protokollrol inditott oldalaknak az iframe-en valo atnyulast, nem egy origin-nek veszi.Vagy indithatod a chrome-ot ha jol tudom --allow-running-insecure-content flaggel és akkor nem veszi figyelembe az origint. Nyilván ez csak fejlesztéshez jo.
- A hozzászóláshoz be kell jelentkezni
+1, webszerveren keresztül illik küldeni a tartalmat, még akkor is, ha localban fejleszt az ember.
- A hozzászóláshoz be kell jelentkezni
De en nem hasznalok iframe-et, hacsak nem a Saxonon belul van vmi ilyesmi.
Sajnos a --allow-running-insecure-content nem segit.
- A hozzászóláshoz be kell jelentkezni
--user-data-dir="C:\Temp" --disable-web-security
segit rajta. Koszi a segitseget!
A kerdesem tovabbra az, hogy lokalis filerendszeren megoldhato-e valahogy, hogy azonos originnek vegye.
- A hozzászóláshoz be kell jelentkezni
Gondolom pont ezt csináltad a fentiekkel. De hidd el jobban jársz, ha szimplán felteszel egy webszervert a gépedre. Ha csak annyi az igényed, hogy statikus fájlokat kiszolgálj elég minimális megoldások is tudnak működni.
- A hozzászóláshoz be kell jelentkezni
python -m SimpleHTTPServer
- A hozzászóláshoz be kell jelentkezni
De en egy egyszeru portabilis toolt szeretnek kesziteni, ami erosen epit xml+xslt(2.0)-re. HTML+JS+Saxon hasznalataval szepen meg tudom oldani a feladatot: csak ki kell csomagolni egy zip-et, abban levo index.html-en duplaklikk es hasznalhato.
Nem akarok/tudok webservert adni hozza, inkabb dobom a Chrome supportot ha korulmenyes.
- A hozzászóláshoz be kell jelentkezni
https://www.chromestatus.com/feature/5755326842273792 linkel egy RFC-t is. Ebből az jön le, hogy a file://-os megoldásod egyszer csak bármelyik böngészőben elromolhat. Nem építenék rá üzleti modellt. Akkor már inkább a Saxon-t hegeszd meg, hogy ne használjon iframe-et. Vagy marad a mini webszerver, vagy hosztold a saját tárhelyeden és tedd elérhetővé másoknak.
- A hozzászóláshoz be kell jelentkezni
Az egesz mogott az a fo problema, hogy a 11 eves XSLT 2.0 (https://www.w3.org/TR/xslt20/) a mai napig nem tamogatott a bongeszokben. Igy kenytelenek vagyunk 3rd party megoldashoz nyulni (Saxon), ami kulonfele problemakat okoz.
- A hozzászóláshoz be kell jelentkezni
Simán készíthetsz egy olyan egyszerű toolt, ami magába foglalja a szükséges fájlokat, és egy mini webszervert ami egy random porton figyel, majd megnyitja azt a böngészőben. Akár azt is megcsinálhatod, hogy a tool maga megnyitja az általad készített oldalt egy saját keretben, mint ha egy önálló dedikált alkalmazás lenne. Ott beállíthatod a saját szabályaidat.
Amit szeretnél csinálni szimplán nem támogatott, és nem érdemes rá építeni. Hiába tűnik ez az egyszerűnek.
Ha egyklikkes megoldást szeretnél, akkor csomagold be a weboldalad egy alkalmazásba, ami tartalmaz webszervert is (python, két sor) és megnyitja a böngészőben. Vagy akár saját ablakban, az akár még jobb is lehet.
- A hozzászóláshoz be kell jelentkezni
De ez azt jelenti, hogy binarist kell buildelnem hozza. Akkor meg kell oldanom, hogy multiplatform legyen (kulonfele Windows verziok (dll dependenciak kezelese), esetleg Linux + Mac). Python interpreter nincs minden Windowsos gepen.
Akkor mar inkabb egy Java applikacioba kellene beleagyaznom. Java JRE csak van meg minden gepen, es akkor mukodhetne a jar file-on dupplaklikkes megoldas.
- A hozzászóláshoz be kell jelentkezni
Miért nem teszed fel saját tárhelyre? Állításod szerint csak pár HTML+JS, statikus tartalommal. Akkor az simán menne egy fix tárhelyről. Teszel elé user+pass vagy cert autentikációt és voila.
- A hozzászóláshoz be kell jelentkezni
És az nehéz? Vannak már tiriválisan egyszerű toolkitek amik megoldják, hogy a weboldalad össze legyen csomagolva egy alkalmazássá és elkészüljön arra a néhány platformra a bináris.
- A hozzászóláshoz be kell jelentkezni
többen fognak nekemjönni most vasvillával, de csinálj belőle egy electron appot :)
- A hozzászóláshoz be kell jelentkezni
+1
Pont ezt akartam beírni én is, de ha gondolod, hozok egy vasvillát :)
- A hozzászóláshoz be kell jelentkezni