Widget Javascript vraagje

Ik ben een widget aan het maken met de JS code die appel geeft op hun website. Ik haal een string op online, die dan weer gebruikt wordt om content aan te maken. Het probleem dat ik heb is als in een alert doe met de content, en ik open het html bestand in Safari, dat hij de alert geeft. Maar als ik een innerHTML functie gebruik om de inhoud daadwerkelijk te laten zien in de widget, lukt dat niet. Ook niet met vaste code die ik erin steek. Dit is m'n HTML:

[code:1:b467dc71e7]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
body {
margin: 0;
}

.opmaak {
font: 11px "Trebuchet MS";
color: 000000;
}
</style>
<script language="JavaScript" src="Main.js"></script>
<title>titel</title></head>
<body onload="laadt();" background="Default.png">
<div align="center" id="content" class="opmaak"></div>
</body>
</html>
[/code:1:b467dc71e7]

Ik output de in “content”.

Zo ziet het JavaScript eruit:

[code:1:b467dc71e7]
function laadt() {
loadXMLDoc(‘hier staat de url naar de string’);
}
var req;
function loadXMLDoc(url) {
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open(“GET”, url, true);
req.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
req = new ActiveXObject(“Microsoft.XMLHTTP”);
if (req) {
req.onreadystatechange = processReqChange;
req.open(“GET”, url, true);
req.send();
}
}
}
function processReqChange() {
// only if req shows “loaded”
if (req.readyState == 4) {
// only if “OK”
if (req.status == 200) {
var tekst = “<br><br><br>dit is een begin<br>”;
document.getElementById(‘content’).innerHTML = tekst;
alert(tekst);
// …processing statements go here…
} else {
alert(“Er heeft zich een probleem voorgedaan:n” +
req.statusText);
}
}
}
[/code:1:b467dc71e7]

Als ik het HTML bestand open in Safari, krijg ik dus wel de alert, maar die innerHTML functie doet niets (ik heb nog geen gebruik gemaakt van de string die ik ophaal, maar heb hem wel al in de alert gekregen).

Ik heb nog wat lopen testen, en ben tot het volgende gekomen. Als ik de HTML open in Safari doet hij het wel, maar als ik de widget in dachboard zet werkt hij weer niet. Kan iemand me hier misschien op pad helpen?

volgens mij kan je niet een nederlandse naam voor een javascript functie gebruiken, funtion laadt is dan het probleem.

daan.

Lijkt me sterk... maar ik probeer het even.

[b:7aeab9c1f1][u:7aeab9c1f1]Update[/u:7aeab9c1f1][/b:7aeab9c1f1]

Ik heb het nu zo gedaan, maar hij blijft niet werken… (wel in Safari)

HTML document:

[code:1:7aeab9c1f1]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
body {
margin: 0;
}

.opmaak {
font: 11px “Trebuchet MS”;
color: 000000;
}
</style>
<script language=“JavaScript” src=“Main.js”></script>
<title>titel</title></head>
<body onload=“loadXMLDoc(‘hier staat de url naar de string’);” background=“Default.png”>
<div align=“center” id=“content” class=“opmaak”></div>
</body>
</html>
[/code:1:7aeab9c1f1]

JavaScript document:

[code:1:7aeab9c1f1]
var req;
function loadXMLDoc(url) {
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open(“GET”, url, true);
req.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
req = new ActiveXObject(“Microsoft.XMLHTTP”);
if (req) {
req.onreadystatechange = processReqChange;
req.open(“GET”, url, true);
req.send();
}
}
}
function processReqChange() {
// only if req shows “loaded”
if (req.readyState == 4) {
// only if “OK”
if (req.status == 200) {
var tekst = “<br><br><br>dit is een begin<br>”;
document.getElementById(‘content’).innerHTML = tekst;
alert(tekst);
// …processing statements go here…
} else {
alert(“Er heeft zich een probleem voorgedaan:n” +
req.statusText);
}
}
}
[/code:1:7aeab9c1f1]

Heb je voor een widget niet de <canvas> tag nodig?

Waar moet ik die dan erin fixen?

[b:782be51635][u:782be51635]Update[/u:782be51635][/b:782be51635]

Ik heb net even nagekeken. Die <canvas> is helemaal niet noodzakelijk.

Maar wat ik wel net heb ondekt is dat het in Safari werkt, maar niet in FireFox. Vreems is ook dat ik van scripts ben uitgegaan die van de apple site komen. Dus er moet ergens iets kleins ontbreken.

Het is me eindelijk gelukt!

Dit moet bovenaan in de [b:bad7fdfaca]Info.plist[/b:bad7fdfaca] file gezet worden:

[code:1:bad7fdfaca]
<key>AllowNetworkAccess</key>
<true/>
[/code:1:bad7fdfaca]

En nu werkt het.

hehe goed zo :D

En wat heb je eigenlijk gemaakt wout?

Ben even aan het uitzoeken hoe het allemaal werkt, en als proef een widget aan het maken voor cconfituur.com die onze 5 laatste projecten toont.

Waarvoor ik het aan het uitzoeken ben is nog een geheim. Dat zal vanaf augustus op onze site aangekondigd worden.