JavaScript 中是否存在任何现有的 OnDestroy/OnDispose 事件,或者纯 JS 或 Mootools 中是否存在任何已知的自定义实现?假设我想在元素从 DOM 中销毁/删除时调用 console.log('bye') 。类似于这个jQuery 解决方案的东西
我想要一个接受事件作为参数的函数,并检查是否传递了有效的事件对象.
function doSomething(e){
if(e is a keyboard event){
// Proceed
} else {
console.log('Error: e is not a KeyboardEvent');
}
}
Run Code Online (Sandbox Code Playgroud)
typeof e
回来object
.但是调试控制台清楚地显示了KeyboardEvent,所以它必须以某种方式可读.
现代浏览器似乎有一个功能,当页面高度增加时,视口会固定在底部。实际发生的是,当初始位置位于(或非常接近)页面底部时,浏览器以与增加高度相同的速率滚动视口。这导致页面看起来好像向上而不是向下扩展。
如何使用 CSS 或 JS 为某个页面禁用此功能,以便页面始终在视觉上向下扩展?
当然,当添加元素的高度被动画扩展时也会发生这种情况。出于这个原因,如果可能的话,我想避免之后重置滚动位置以防止可见跳转。可以在下面的 gif 中观察此“功能”(似乎仅在极少数情况下发生)与视口和放置动画交互的演示。
我知道一定有办法,否则每个无限滚动的站点都会陷入无限循环。反驳:对于超过特定高度限制的容器,Chrome 似乎不会这样做。所以也许无限滚动的网站甚至不会在他们的网站中解决这个问题。
我在测量非临时未样式化元素的高度/宽度时遇到了性能问题。读取以下属性似乎很慢:
.offsetHeight
.clientHeight
.scrollHeight
Run Code Online (Sandbox Code Playgroud)
我在其他地方读到它很慢,因为以某种方式阅读它们会导致重排。至少,这就是我所发现的offsetHeight
,但是其他两个的表现相同。这里存在某种量子魔术,因为从逻辑上读取属性不应导致页面重排。无论如何,有没有一种更快的方法可以在最简单的条件下查找元素的宽度/高度,在这种情况下该元素没有像margin, padding, border
它那样应用任何样式,或者没有其他样式?
.style.height
只是返回空字符串,因为它仅从style=""
属性读取值,该属性在明确定义之前为空。
更新:window.getComputedStyle(el).height
执行速度一样慢。
默认情况下,PHP在IUSR帐户下运行.直接执行时:
$lastline = exec('D:\\MyProgram.exe', $output, $return_var);
Run Code Online (Sandbox Code Playgroud)
它运行,但由于权限不足,程序无法完成任务.我的问题是:如何在PHP网站上的特定Windows帐户下运行可执行文件?
通过Sysinternals PsExec执行时:
$lastline = exec('D:\\PsExec.exe -u UserName -p Password -accepteula "D:\\MyProgram.exe"', $output, $return_var);
Run Code Online (Sandbox Code Playgroud)
MyProgram.exe甚至根本不执行.PHP抛出空输出,return_var是-1073741502
.我认为这是某种未处理的异常.
$lastline = exec('D:\\lsrunas.exe /user:UserName /password:Password /domain:DOMAIN /command:"D:\\MyProgram.exe" /runpath:D:\\', $output, $return_var);
Run Code Online (Sandbox Code Playgroud)
MyProgram.exe也不执行.PHP抛出空输出,return_var是0
.
Microsoft的内置runas
命令不起作用,因为它不接受密码作为参数.
使用像不同的PHP函数尝试shell_exec
,system
和passthru
尝试在IIS下创建新的应用程序池,以在LOCAL SERVICE,SYSTEM或特定用户下运行网站.编辑:这是我出错的地方.它应该工作,但在未启用"加载用户配置文件"设置时失败(我的答案中的第3步).
有没有人有工作建议?
注意:所有命令都在直接通过命令行工作和测试.
在没有任何明显的闪烁和任何奇怪的情况下实现这一目标的最佳方法是什么?
开始的小提琴:http://jsfiddle.net/35qec14b/2/
$('.element').on('click', function(e){
this.remove();
});
Run Code Online (Sandbox Code Playgroud)
.element {
position:relative;
width: 200px;
margin:5px;
padding:20px;
cursor:pointer;
background: rgb(150,200,250);
transition:1s linear;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
(click to remove)
<div class="element">Element 1</div>
<div class="element">Element 2<br>Second line</div>
<div class="element">Element 3</div>
<div class="element">Element 4<br>Second line</div>
<div class="element">Element 5</div>
Run Code Online (Sandbox Code Playgroud)
注意:在这种情况下,删除的元素必须立即消失,因为它会出现在另一个位置,我们不希望它同时在两个地方可见.
目前为止的想法:
javascript ×4
css ×2
animation ×1
command-line ×1
css3 ×1
events ×1
exec ×1
mootools ×1
performance ×1
php ×1
psexec ×1
runas ×1