我正在使用setTimeout和clearTimeout进行自动注销.应该是非常直接但是明确的超时似乎不会停止超时并且无论如何都会调用该函数.我设置了会话变量填充javascript然后读取的文本输入并与现在的时间进行比较.如果差异大于或等于20秒,则重叠div显示给出更新会话的选项,否则它将在10秒内注销.检查上次活动的脚本每十秒自动运行一次.显然,一旦我开始工作,时间会更长 - 这些仅用于测试目的.
我已经在网上搜索过,但似乎找不到一个明显的解决方案,因为它不是那么复杂,看起来它应该真正起作用!
这是我的代码:
var t = 0;
function check_status(){
var time_now = Math.floor(new Date().getTime() / 1000);
var last_activity = document.getElementById("last_activity").value;
var since_last_activity = time_now-last_activity;
console.info(since_last_activity);
if(since_last_activity >= 20){
// show div
document.getElementById("logout_warning").style.height = document.documentElement.clientHeight+"px";
document.getElementById("logout_warning").style.display = 'block';
// start countdown
var t = setTimeout("logout();", 10000);
}
}
function logout(){
document.getElementById("logout_warning").style.display = 'none';
location.href="/user/logout";
}
function renew(){
clearTimeout(t);
var time_now = Math.floor(new Date().getTime() / 1000);
document.getElementById("last_activity").value = time_now;
document.getElementById("logout_warning").style.display = 'none';
}
setInterval('check_status()', 10000);
Run Code Online (Sandbox Code Playgroud)
然后在身体......
<div id="logout_warning" style="display:none; width:100%; …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建jQuery表单,每次用户单击时都会自动更新.
目前我正在查询用户名是否正确; 如果不是,它将使输入框呈红色.
这是我当前的代码(它似乎根本不起作用).
jQuery的:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function($) {
$(document).click(function(e) {
if (!$(e.target).closest('#jq-user-getval').length) {
if ( $('#jq-user-getval').val() != '' ) {
if( $("#jq-user-getval").val() < 4) {
$("#jq-user-getval").addClass('border-force');
}
}
}
})
})
</script>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我已经做到这一点,当用户点击输入框时,它会检查该框是否为空.如果它是空的,它将检查长度是否小于4个字符,那么它应该添加一个强制红色轮廓的类.但是,这不起作用.
这是HTML,我不确定问题是否在这里:
<form action="" method="post">
<input id="jq-user-getval jq-user-class" type="text" name="username">
</form>
Run Code Online (Sandbox Code Playgroud)
我试图复制微软的"Hotmail"注册表,如果你可以提出任何修改.
我有一个非常简单的React组件,它需要一个必需的 prop active,.
为这一道具设置内联接口非常简单。但现在,我需要考虑可以传递到组件上的其他类型的道具。
幸运的是,Native提供了这个元素的 props,所以我不必为它重新创建界面。但我正在努力弄清楚如何扩展我当前的内联界面以使其正常工作。
我尝试过这种方法:
const BarTabName = ({ active, ...props }: { active: boolean; } extends TextProps) => {
return <Text {...props} />;
};
Run Code Online (Sandbox Code Playgroud)
但这只会导致错误:
'?' 预期.ts(1005)
如果可能的话,我试图避免在参数之外创建单独的接口。
我在JavaScript文件中声明了一个非常简单的函数,无论验证是否开始,它都应该返回:
window.Validator = function(){
this._started = false;
this.started = function(){
return this._started;
};
}
Validator.started();
Run Code Online (Sandbox Code Playgroud)
但是,当我调用 时Validator.started(),即使它直接在声明之后,它也会抛出错误:
未捕获的类型错误:Validator.started 不是函数
这个真的让我摸不着头脑,不知道为什么它不起作用。