OK, ich bin kein Experte für Sidebar Gadgets, aber ich habe dieses Projekt für die Schule zu machen. Ich habe versucht, es alleine zu lösen, aber ich bin wirklich festgefahren.Die Einstellungen des Sidebar-Gadgets können nicht angewendet werden
Ich werde die Cirip-API verwenden müssen (Cirip.ro ist eine Art von Twitter), und für die Verwendung der API muss ich den Benutzernamen eingeben. Ich mache das mit den Einstellungen, aber beim Schließen der Einstellungen gibt es keine Wirkung.
Hier ist der Code, aber es ist ziemlich chaotisch. Ich bin kein Webprogrammierer, also ist Javascript/HTML für mich neu.
http://www.box.net/shared/7yogevhzrr
EDIT: Ok, so habe ich es verengt sich hier ein wenig und optimiert mein Code, aber es funktioniert immer noch nicht. Ich habe es so einfach wie möglich gemacht.
Im Haupt html Ich habe dies:
<script language="javascript">
document.write(getUserName());
</script>
In den gadget.js:
var userName;
document.onreadystatechange = function DoInit() {
document.body.style.width = 251;
document.body.style.height= 351;
document.body.style.margin=2;
userName="danieliuhasz";
System.Gadget.settingsUI = "settings.html";
System.Gadget.onSettingsClosing = settingsClosed;
}
function setUserName(userNameSet){
userName = userNameSet;
}
function getUserName(){
return userName;
}
function settingsClosed()
{
var username = System.Gadget.Settings.read("username");
setUserName(username);
}
Im settings.html:
<body>
Username:<br />
<input name="userBox" type="text" maxlength="50" />
</body>
In settings.js:
document.onreadystatechange = function DoInit()
{
if(document.readyState=="complete")
{
var user = System.Gadget.Settings.read("userName");
if(user != "")
{
userBox.value = user;
}
}
}
System.Gadget.onSettingsClosing = function(event)
{
if (event.closeAction == event.Action.commit)
{
var username = userBox.value;
if(username != "")
{
System.Gadget.Settings.write("username", username);
System.Gadget.document.parentWindow.settingsClosed();
}
}
}
Ich kann es wirklich nicht herausfinden. Die Ausgabe davon ist "undefiniert".
Die Ausgabe ist * undefined *, wahrscheinlich, weil Sie die Variable 'username' im Event-Handler' onreadystatechange' gesetzt haben und der 'document.write()' - Block fi ausführt zuerst. Außerdem wird der 'document.write()' Code nicht ausgeführt, nachdem die Einstellungen geschlossen wurden. –