Хорошо, я не эксперт в Sidebar Gadgets, но у меня есть этот проект, который мне придется сделать для школы.Я пытался решить это самостоятельно, но я действительно застрял.
Мне придется использовать Cirip API (Cirip.ro - своего рода Twitter), и для использования API мне нужно ввестиИмя пользователя.Я делаю это с помощью настроек, но при закрытии настроек эффекта нет.
Вот код, но он довольно грязный.Я не веб-программист, поэтому javascript / html является новым для меня.
http://www.box.net/shared/7yogevhzrr
РЕДАКТИРОВАТЬ: Хорошо, поэтому я немного сузил его и оптимизировал мой код здесь, но он все еще не работает.Я сделал это как можно проще.
В основном html у меня есть это:
<script language="javascript">
document.write(getUserName());
</script>
В 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);
}
В файле settings.html:
<body>
Username:<br />
<input name="userBox" type="text" maxlength="50" />
</body>
В файле 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();
}
}
}
Я действительно не могу понять это.Вывод этого "неопределен".