gpt4 book ai didi

javascript - 无法应用侧边栏小工具的设置

转载 作者:可可西里 更新时间:2023-11-01 13:40:15 26 4
gpt4 key购买 nike

好吧,我不是 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();

}
}
}

我实在想不通。其输出为“未定义”。

最佳答案

我在这台机器上没有 RAR 解包器,所以我不能看文件,但我可以给你一些关于保存设置的建议。如果您需要进一步的帮助,请尝试将代码粘贴到您的问题中(请参阅我上面的评论)。

使用设置时,您需要捕获 System.Gadget.onSettingsClosing JavaScript 代码中的事件。在此事件处理程序中,您可以通过在小工具窗口中设置属性来进行临时设置,也可以使用 System.Gadget.Settings.write 进行半永久性设置。存储设置。假设您的用户名/密码 html 如下所示:

<label for="username">Username: </label><input id="username" type="text"><br/>
<label for="password">Password: </label><input id="password" type="password">

您的 JavaScript 应如下所示:

System.Gadget.onSettingsClosing = function (event) {
// First, we need to make sure the user clicked the OK button to save
if (event.closeAction == event.Action.commit) {
// If they did, we need to store the settings
var username = document.getElementById("username").value,
password = document.getElementById("password").value;

System.Gadget.Settings.write("username", username);
System.Gadget.Settings.write("password", password);

/* Finally, we can call a function defined in the main gadget window's
JavaScript to let it know that the settings have changed */
System.Gadget.document.parentWindow.settingsHaveChanged();
}
}

在您的主要小工具的 JavaScript 中,settingsHaveChanged 可能类似于以下函数:

function settingsHaveChanged () {
var username = System.Gadget.Settings.read("username"),
password = System.Gadget.Settings.read("password");

sendAPIRequest(username, password);
}

关于javascript - 无法应用侧边栏小工具的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com