| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
I have two chunks of HTML on my widget that I want to refresh with a timer, pulled from remote .js files that just do document.writes of HTML. Poor man's RSS sort of - but my needs go beyond RSS so that's not an option for me.
Anyway, I wrote this demo that basically works:
http://www.blakespot.com/xml.html
I am trying to do the same thing in my widget, but it never works. Let me explain.
In my loaded() function, called as onLoad in my BODY tag, I do this:
<x-tad-bigger>loadXMLDoc(</x-tad-bigger><x-tad-bigger>http://www.blakespot.com/doc1.html'</x-tad-bigger><x-tad-bigger>);</x-tad-bigger>
<x-tad-bigger>And that function I have defined as:</x-tad-bigger>
<x-tad-bigger>function</x-tad-bigger><x-tad-bigger> loadXMLDoc(url) </x-tad-bigger>
<x-tad-bigger>{</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger>if</x-tad-bigger><x-tad-bigger> (window.XMLHttpRequest) { </x-tad-bigger>
<x-tad-bigger> req = </x-tad-bigger><x-tad-bigger>new</x-tad-bigger><x-tad-bigger> XMLHttpRequest();</x-tad-bigger>
<x-tad-bigger> req.onreadystatechange = processReqChange();</x-tad-bigger>
<x-tad-bigger> req.open(</x-tad-bigger><x-tad-bigger>"GET"</x-tad-bigger><x-tad-bigger>, url, </x-tad-bigger><x-tad-bigger>true</x-tad-bigger><x-tad-bigger>);</x-tad-bigger>
<x-tad-bigger> req.send(</x-tad-bigger><x-tad-bigger>null</x-tad-bigger><x-tad-bigger>);</x-tad-bigger>
<x-tad-bigger> } </x-tad-bigger>
<x-tad-bigger>}</x-tad-bigger>
<x-tad-bigger>...and this function calls:</x-tad-bigger>
<x-tad-bigger>function</x-tad-bigger><x-tad-bigger> processReqChange() </x-tad-bigger>
<x-tad-bigger>{</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger>// only if req shows "loaded"</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger>if</x-tad-bigger><x-tad-bigger> (req.readyState == </x-tad-bigger><x-tad-bigger>4</x-tad-bigger><x-tad-bigger>) {</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger>// only if "OK"</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger>if</x-tad-bigger><x-tad-bigger> (req.status == </x-tad-bigger><x-tad-bigger>200</x-tad-bigger><x-tad-bigger>) {</x-tad-bigger>
<x-tad-bigger> document.getElementById(</x-tad-bigger><x-tad-bigger>'news'</x-tad-bigger><x-tad-bigger>).innerHTML = </x-tad-bigger><x-tad-bigger>"yo"</x-tad-bigger><x-tad-bigger>;</x-tad-bigger>
<x-tad-bigger> } </x-tad-bigger><x-tad-bigger>else</x-tad-bigger><x-tad-bigger> {</x-tad-bigger>
<x-tad-bigger> document.getElementById(</x-tad-bigger><x-tad-bigger>'news'</x-tad-bigger><x-tad-bigger>).innerHTML = </x-tad-bigger><x-tad-bigger>"There was a problem retrieving the XML data:\n"</x-tad-bigger><x-tad-bigger> + req.statusText;</x-tad-bigger>
<x-tad-bigger> }</x-tad-bigger>
<x-tad-bigger> }</x-tad-bigger>
<x-tad-bigger>}</x-tad-bigger>
<x-tad-bigger>And this is the block of code I am trying to replace (the element id = news)</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger><span class="newsText"></x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger><br></x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger><div id="news"></x-tad-bigger><x-tad-bigger>start</x-tad-bigger><x-tad-bigger></div></x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger></span></x-tad-bigger>
<x-tad-bigger>...the problem is, req.readyState is always 0. The state indicates UNDEFINED. I do have:</x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger></key></x-tad-bigger>
<x-tad-bigger> </x-tad-bigger><x-tad-bigger><true/></x-tad-bigger>
<x-tad-bigger>In my plist. What could be the issue? I can hit the net fine from this machine. I have been stumped for days here. Any ideas? The issue is not really whether it's updating the 'news' element id because, as I said, when I output req.readyState in the top of processReqChange, it's always 0...</x-tad-bigger>
<x-tad-bigger>req is defined as a global var at the start of the .js file for my widget.</x-tad-bigger>
<x-tad-bigger>Thanks for any help!</x-tad-bigger>
<x-tad-bigger>bp</x-tad-bigger>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Dashboard-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/dashboard-dev/email@hidden
This email sent to email@hidden
_______________________________________________ Do not post admin requests to the list. They will be ignored. Dashboard-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/dashboard-dev/email@hidden This email sent to email@hidden
| References: | |
| >Having trouble using XMLHttpRequest to refresh data (From: Blake Patterson <email@hidden>) |
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE
Contact Apple | Terms of Use | Privacy Policy
Copyright © 2007 Apple Inc. All rights reserved.