HTML inlezen en verwerken in JS

Pagina: 1
Acties:
  • 137 views sinds 30-01-2008
  • Reageer

  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

Topicstarter
Ik wil dus een HTML pagina inlezen in JS en daar stukken van het DOM uitfilteren en deze gebruiken op mijn eigen HTML page. Heeft iemand hier info over hoe dat moet want ik kan niets vinden.

AANVULLING:

Goed dit is wat ik wil.

Ik wil browser onafhankelijk (zonder active X en vooral geen FSO) een HTML page kunnen inlezen. Dus een soort van:

var DOMdoc=getHTML('http://www.bla.nl')

Daarna wil ik graag dit bestand kunnen onleden en uitlezen.

  • porn*
  • Registratie: Januari 2001
  • Laatst online: 26-08 13:24

porn*

...take on the world!

Met body.innerHTML?

Bnet pindle#2913


  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

Topicstarter
ik wil niet direct de body aanpassen... want dat kan ik al. Ik wil een andere page inlezen en daar tables etc etc uithalen.

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

laad die pagina in een iframe, en use the force of DOM :)

Stop uploading passwords to Github!


  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

Topicstarter
Er is dus geen manier om dit 'onzichtbaar' in te lezen?

Verwijderd

filereader van beehive komt aardig in de richting dacht ik zo.

  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

Topicstarter
Verwijderd schreef op 07 augustus 2002 @ 14:30:
filereader van beehive komt aardig in de richting dacht ik zo.
Ik geloof dat ik hier niet mijn vraag beantwoord kan krijgen.

Verwijderd

Ik denk dat het best wel gaat lukken

http://www.xs4all.nl/~peterned/

  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

Topicstarter
Dat zit er wel erg cool uit voor DHTML :)

Verwijderd

DHTML is cool

  • André
  • Registratie: Maart 2002
  • Laatst online: 01-09 14:07

André

Analytics dude

Met een ActiveXObject kun je html met javascript inlezen:
code:
1
2
3
4
5
6
7
8
9
<script language="javascript">
  var fso, ts, s;

  fso = new ActiveXObject("Scripting.FileSystemObject");
  ts = fso.OpenTextFile("c:\\winnt\\system.ini", 1);
  s = ts.ReadAll();
  document.write(s);
  ts.Close();
</script>

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

zeker :D

Met xml + js kan je trouwens ook flink wat.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

Topicstarter
Goed dit is wat ik wil.

Ik wil browser onafhankelijk (zonder active X en vooral geen FSO) een HTML page kunnen inlezen. Dus een soort van:

var DOMdoc=getHTML('http://www.bla.nl')

Daarna wil ik graag dit bestand kunnen onleden en uitlezen.

  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

Topicstarter
Clay schreef op 07 augustus 2002 @ 16:20:
[...]
zeker :D

Met xml + js kan je trouwens ook flink wat.
Maar helaas niet zonder een ActiveX obejct... tenminste niet naar mijn weten.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:53

crisp

Devver

Pixelated

Vampier schreef op 07 augustus 2002 @ 18:31:
[...]

Maar helaas niet zonder een ActiveX obejct... tenminste niet naar mijn weten.
In Mozilla wel hoor (xml dan)

Intentionally left blank


  • Vampier
  • Registratie: Februari 2001
  • Laatst online: 20-04-2015

Vampier

poke-1,170

Topicstarter
crisp schreef op 07 augustus 2002 @ 18:38:
[...]
In Mozilla wel hoor (xml dan)
zucht....

XML en activeX

Je kunt dan alleen xml bestanden vanaf je local drive halen en verwerken.... :'(

maar weet niemand het?

  • Virtox
  • Registratie: December 2000
  • Laatst online: 11-08 10:24
Heb je mogelijkheid van perl of php aan de server kant ?
Dan kan je snarf gebruiken oid.

Anything goes !!


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
nou als ik het goed begrijp heb ik dit 1 keer gedaan. Het is vrij eenvoudig, maar tenzij je dit absoluut nodig hebt raad ik het ten zeerste af. De standaard 'back' functionaliteit van elke browser gaat er immers danig van op z'n plaat. Nu kan het zo zijn dat het wel normaal blijft werken als je met een FRAME werkt ipv IFRAME, maar dat heb ik nooit meer getest (ben wel benieuwd naar). Het was leuk om te zien dat het werkt, maar het is gewoon een bitch om bug-vrij en cross-browser te krijgen. Ik neem aan dat Netscape4 je een worst is.

Je maakt in je pagina een frameset met minstens 1 onzichtbaar frame, of je mikt gewoon ergens een onzichtbaar iframe neer. Met een JS functie op je 'hoofdpagina' refresh je het onzichtbare (i)frame naar een serverscript (PHP bijvoorbeeld) die als GET argument de url van de gewenste site heeft (geturl.php?url=www.bla.nl). [het volgende stuk verzin ik ter plekke, ik had het zelf niet nodig]
In geval van PHP doe je [pseudo] $fp = fopen($url) en je trekt de pagina binnen met fread($fp) naar een string $htmldata[/pseudo].
[/het volgende stuk verzin ik ter plekke, ik had het zelf niet nodig]

In plaats van de html data gewoon te printen in het frame, genereer je een javascript met [pseudo] echo "var html = /"".$htmldata."/";";[/pseudo]. Onderaan dit script plaats je weer een call naar de hoofdpagina waarmee je de variable html doorsluist naar het hoofdframe, alwaar je ermee kunt gaan spelen. De reden waarom we niet vanuit de hoofdpagina shit ophalen uit het onzichtbare frame maar juist andersom, is omdat ik niet wist hoe ik vanuit de hoofdpagina moest bepalen of en wanneer de onzichtbare pagina klaar is met laden.

Wat ik destijds ook nog deed, was alle binnengetrokken html in javascript bewaren , zodat bij een hernieuwde opvraag het spul niet meer geladen hoeft te worden en alles dus retesnel wordt

Dit alles werkt op IE5.0 en hoger (IE4 not tested) op MacIE5.0 en hoger en op Netscape 6.0 of 6.1 (kweeniemeer) en hoger. Misschien zijn er wel andere methoden maar het werkt. Een soortgelijke functionaliteit heb ik ook een met XML-RPC voor elkaar gekregen.

Nog een innerHTML tip: om MacIE5.0 er geen zooi van te laten maken, moet je bij iets.innerHTML = mijnhtmlstring; altijd dit doen: iets.innerHTML = "\n" + mijnhtmlstring + "\n"; 't is maar dat je het weet :P

Ik ga ff voor je zoeken naar een scriptje waarmee je MySQL queries kunt uitvoeren (zooi uit een database binnenhalen) zonder je pagina te hoeven herladen.

[ Voor 0% gewijzigd door Genoil op 07-08-2002 22:48 . Reden: bugje in codesniplet ]


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
mja dit is een beetje illustratief, het werkt niet on-the-fly, je moet het wel ff tweaken met je eigen db functies. en de processing van de sql resultsset is natuurlijk zwaar tabel afhankelijk

--index.html-- (DIT is natuurlijk GEEN php, en die <? ?> moet je er dus ff ni bij denken

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<body id='mybody'>
    <script>
        function doQuery()
        {
            query = document.getElementById("tf_query");
            query =query.value;
            var loader = document.getElementById("div_loader");
            
            loader.innerHTML = "/n<iframe frameBorder='0' src=doquery.php?query="+query+">/n";
            
        }
    </script>
    <input id="tf_query" type = text size=100 value="SELECT+*+FROM+news">
    <input value="do query" type = button onClick ="doQuery()">
    <div name="blaat" id="div_viewer"></div>
    <div id="div_loader"></div>
</body>



--doquery.php--

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<html>
    <body>
        <?
            // ondertaande includes spreken voor zich, mag je 
            // lekker zelf helpers voor schrijven :P
            include("../inc/SUB_DB.php");
            include("../inc/SUB_JS.php");
            if(SUB_DB_Init())
            {
                $result = SUB_DB_ProcessQuery($query);
                if(!isset($result['error']))
                {
                    $html= "";
                    for($n = 0; $n < count($result); $n++)
                    {
                        $html.= $result[$n]['name'].$result[$n]['title'].$result[$n]['body']."<br>";
                    }           
                }
                else
                {
                    $html = $result['error'];   
                }
                $html = ereg_replace("(\r\n|\n|\r)", "<br/>", addslashes($html));
                SUB_JS();
                SUB_JS_Do("viewer = parent.document.getElementById('div_viewer')");
                SUB_JS_Do("viewer.innerHTML = \"\n".$html."\"\n");
                _SUB_JS();  
                
            }   
            else
            {
                echo "no db conx";
            }
            
        ?>
    </body>
</html>

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:53

crisp

Devver

Pixelated

Vampier schreef op 07 augustus 2002 @ 20:15:
[...]

zucht....

XML en activeX

Je kunt dan alleen xml bestanden vanaf je local drive halen en verwerken.... :'(

maar weet niemand het?
Dat is dus *niet* waar; xml parsing is native embedded in Mozilla, en het maakt op zich niet uit of de xml op je local drive staat, of ergens op internet.
Het enige waar je rekening mee moet houden is dat je bepaalde security settings moet overrulen in je all.js of je prefs.js voor het XMLdocument object.
De GoT Tracker maakt hier bijvoorbeeld gebruik van zodat hij ook werkt onder linux in Mozilla (helaas geeft de active topics XML van GoT op dit moment nog de verkeerde mime type mee, wat resulteert in een load error).
Wat dat betreft is het dus inderdaad behelpen in IE met activeX controls. Een JS filereader kan je wel gebruik, maar niet cross-domain...

Intentionally left blank

Pagina: 1