好的,我不是 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();
}
}
}
我实在想不通。这个的输出是“未定义的”。