I am getting really impatient about this problem as I cant seem to solve 
it :O!
Does anyone have a complete script I can look at using Greasymonkeys 
version of the XMLHttpRequest downloader "and put it in a iframe and 
evaluate it" script.

I'm running out of ideas here.


Greets.

Tommi Rautava wrote:
> The DOMContentLoaded event is sent after close(), so it should be
> enough if the listener is added just before
> iframe.contentDocument.close().
>
> 2007/8/8, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
>   
>> Interesting. The only comment I'll make is you should add
>> iframe.contentDocument.addEventListener() *before* writing
>> the responseText into the IFRAME otherwise, under race conditions, I could
>> see you missing the DOMContentLoaded event.
>>
>>
>>
>> ----- Original Message ----
>> From: Foreningen Selvet - Jesper Staun Hansen <[EMAIL PROTECTED]>
>> To: Mozdev Project Owners List <project_owners@mozdev.org>
>> Sent: Wednesday, August 8, 2007 7:21:47 AM
>> Subject: Re: [Project_owners] evaluate html document by XMLHttpRequest
>>
>> So, the trick here would be to throw all of the code into iframe and
>> define it as text/html and then parse it?
>> Guess I think I got it right.
>>
>>
>> Tommi Rautava wrote:
>>     
>>> The problem is that you cannot parse HTML with XML parser. I struggled
>>> with the same problem some time ago and the best solution I have found
>>> so far is the HTML parser example made by Aaron Boodman (the original
>>> author of Greasemonkey):
>>> http://youngpup.net/userscripts/htmlparserexample.user.js
>>>
>>> br, Tom
>>>
>>> 2007/8/7, Foreningen Selvet - Jesper Staun Hansen <[EMAIL PROTECTED]>:
>>>
>>>       
>>>> Hello.
>>>>
>>>>
>>>> I am having some trouble using element.evaluate(properties) with
>>>> documents fetched with XMLHttpRequest, so I am looking for a method to
>>>> do the same as this:
>>>>
>>>> //*****
>>>> var roundinfo = {
>>>>     runde : "56",
>>>>     heroesid : null,
>>>>     heroesnick : null
>>>> }
>>>>
>>>>         var path = '//table/tbody/tr/td';
>>>>         var obj = document.evaluate(path,document,null,
>>>>             XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
>>>>         
>> null);
>>     
>>>>         for (var k = 0; k < obj.snapshotLength; k++) {
>>>>             obj2 = obj.snapshotItem(k).parentNode;
>>>>             var nodes = obj2.childNodes;
>>>>
>>>>             dump("Found keys: "+nodes.length+"\n");
>>>>             var menu =
>>>>         
>> nodes[0].textContent.trim().split("#");
>>     
>>>>             roundinfo.heroesnick = menu[0].trim();
>>>>             roundinfo.heroesid = menu[1].trim();
>>>>             dump("Nick is: "+roundinfo.heroesnick+"\n");
>>>>             dump("ID is: "+roundinfo.heroesid+"\n\n");
>>>>         }
>>>> //*****
>>>>
>>>> And the document contains this:
>>>>
>>>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
>>>> <html>
>>>> <head>
>>>> <title></title>
>>>> </head>
>>>> <body>
>>>> <table>
>>>>         <tr>
>>>>                 <td colspan="3"><font face="arial" size="1"
>>>>         
>> color="DarkTurquoise">Axe Decapitators       #130303</font></td>
>>     
>>>>         </tr>
>>>>
>>>>
>>>> </table>
>>>> </body>
>>>> </html>
>>>>
>>>> And the dump would be
>>>>
>>>> Nick is: Axe Decapitators
>>>> ID is: 130303
>>>>
>>>> And I tried some things to make it with XMLHttpRequest:
>>>> //******* Attemp:
>>>>             var req = new XMLHttpRequest();
>>>>             req.overrideMimeType('text/html');
>>>>             req.open('GET',
>>>> 'http://www.URL_TO_FETCH_CONTAINING_THE_ABOVE_CODE.dk',
>>>>         
>> true);
>>     
>>>>             req.onreadystatechange = function () {
>>>>               if (req.readyState == 4) {
>>>>                  if(req.status != 404) {
>>>>                 var path = '//table/tbody/tr/td/font';
>>>>                 var domParser = new DOMParser();
>>>>                 var dom = domParser.parseFromString(req.responseText,
>>>> "text/xml").documentElement;
>>>>
>>>>                 var obj =
>>>>
>>>>         
>> dom.evaluate(path,dom,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
>> null);
>>     
>>>>                 for (var k = 0; k < obj.snapshotLength; k++) {
>>>>                     obj2 = obj.snapshotItem(k).parentNode;
>>>>                     var nodes = obj2.childNodes;
>>>>
>>>>                     dump("Found keys: "+nodes.length+"\n");
>>>>                     var menu =
>>>>         
>> nodes[0].textContent.trim().split("#");
>>     
>>>>                     roundinfo.heroesnick = menu[0].trim();
>>>>                     roundinfo.heroesid = menu[1].trim();
>>>>                     dump("Nick is: "+roundinfo.heroesnick+"\n");
>>>>                     dump("ID is: "+roundinfo.heroesid+"\n\n");
>>>>                 }
>>>>                  }
>>>>                  else
>>>>                   dump("Error loading page with status"+ reg.status
>>>>         
>> +"\n");
>>     
>>>>               }
>>>>             };
>>>>             req.send(null);
>>>>
>>>>
>>>> But this only results in this:
>>>> Error: syntax error
>>>> Source File: chrome://browser/content/browser.xul
>>>> Line: 1, Column: 62
>>>> Source Code:
>>>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
>>>>
>>>>         
>> Transitional//EN">-------------------------------------------------------------^
>>     
>>>> Any tips on how to do this "right"?
>>>>
>>>>
>>>>
>>>> My regards.
>>>>
>>>> _______________________________________________
>>>> Project_owners mailing list
>>>> Project_owners@mozdev.org
>>>> http://mozdev.org/mailman/listinfo/project_owners
>>>>
>>>>
>>>>         
>>> _______________________________________________
>>> Project_owners mailing list
>>> Project_owners@mozdev.org
>>> http://mozdev.org/mailman/listinfo/project_owners
>>>
>>>
>>>
>>>       
>> _______________________________________________
>> Project_owners mailing list
>> Project_owners@mozdev.org
>> http://mozdev.org/mailman/listinfo/project_owners
>>
>>
>> _______________________________________________
>> Project_owners mailing list
>> Project_owners@mozdev.org
>> http://mozdev.org/mailman/listinfo/project_owners
>>
>>
>>     
> _______________________________________________
> Project_owners mailing list
> Project_owners@mozdev.org
> http://mozdev.org/mailman/listinfo/project_owners
>
>
>   


_______________________________________________
Project_owners mailing list
Project_owners@mozdev.org
http://mozdev.org/mailman/listinfo/project_owners

Reply via email to