小编Ed *_*iel的帖子

window.onfocus在IE7中没有触发,在Opera中不一致

请注意,这与窗口上的焦点和模糊事件有关,而与窗体字段无关.

我正在弹出窗口中加载文档,它包含以下代码:

<script type="text/javascript">
window.onblur = function(){ document.title="BLURRED"; }
window.onfocus= function(){ document.title="FOCUSED"; }
</script>
Run Code Online (Sandbox Code Playgroud)

这些功能是暂时的,用于测试.我希望使用这些事件来设置一个指示窗口状态的标志; 我正在做一个聊天应用程序,如果消息在最小化时进入,我会做一些注意力的标题更改.但是,当窗口获得焦点时,如果它们没有取消,那么它们就会很烦人.

Onload,我也把重点放在textarea上.(不确定这是否有所不同.)

IE7(我没有其他版本方便)似乎认识到window.onblur但不是window.onfocus.Opera 10简直太奇怪了.

这是我所拥有的浏览器中发生的事情.我通过单击父级中的链接启动弹出窗口,然后通过单击(Windows XP)任务栏上的弹出按钮来完成几个最小化还原周期:

Safari 4:

  • 打开窗口:文档以原始标题打开
  • 最小化:标题更改为"BLURRED"
  • 恢复:标题更改为"FOCUSED"

这就是我预期会发生的事情.

Firefox 3.5:

  • 打开窗口:文档以原始标题打开,然后更改为"FOCUSED"
  • 最小化:标题更改为"BLURRED"
  • 恢复:标题更改为"FOCUSED"

onfocus onload有点令人惊讶,但不是问题.

IE7:

  • 打开窗口:文档以原始标题打开
  • 最小化:标题更改为"BLURRED"
  • 恢复:无论我切换多少次,标题都不会改变

onfocus发生了什么?

Opera 10.5

  • 打开窗口:文档以原始标题打开,但在另一个选项卡中,不弹出

有时...

  • 最小化:标题更改为"BLURRED"
  • 恢复:标题更改为"FOCUSED"

有时...

  • 最小化:标题更改为"BLURRED"然后"FOCUSED"
  • 恢复:标题不会改变

好的,这简直就是奇怪......

我对其他方法开放态度,但我真的很想知道这里发生了什么,用普通的旧Javascript - 所以请不要给出一个jQuery的答案,除非真的没有办法解决这个问题.

谢谢!

javascript opera internet-explorer javascript-events onfocus

6
推荐指数
1
解决办法
5144
查看次数

jQuery的原型:Mindset迁移?

这不是一个并排的技术比较,而是关于如何"在jQuery中思考"与"在Prototype中思考".

我已经使用了Prototype很多年了,jQuery有点不那么重,直到大约一年前我开始做很多事情.

使用Prototype,我可以编写一些相当优雅的代码; 我的老板曾经审查过我的大量代码,并说这是他第一次有兴趣阅读的Javascript.我理解 - 并且从一开始就理解了 - 几乎本能地是Prototype试图做的事情,并且知道如何使用它.

我的jQuery代码更多,我怎么能把它,"workmanlike".我觉得好像我在每一步都在与jQuery作斗争.我必须(尝试)强迫自己坚持使用它而不是直接进入"原生"JS,我知道我可以更快地抨击干净的跨浏览器代码.使用它会使它更多,而不是更少,令人沮丧.

它不是(或至少不完全)缺乏对可用功能的熟悉.我经常知道我需要使用给定的函数,但它的使用方式似乎真的很奇怪.这通常表明我是以完全错误的方式来做的.

我想的越多,我就越想我以原型方式使用jQuery.

还有一些令人眼花缭乱的闪光灯还没有发生在我身上.特别是如果你和两者都做了很多工作,你发现什么是最基本的方法差异?当你从一个切换到另一个时,你如何调整你的心态?

不要害怕陈述令人眼花缭乱的明显,因为它可能只是那个致盲的闪光......

javascript jquery prototypejs

5
推荐指数
1
解决办法
175
查看次数

如何从 SQL Server 2008 获取不带冒号的日期时间字符串?

我试图从 SQL Server 数据库中的日期时间值获取类似“20101231235959”(yyyyMMddhhmmss) 的内容。这是我能想到的最好的方法 - 在去掉冒号后将“yyyyMMdd”与“hh:mm:ss”连接起来:

CONVERT(varchar(25),Batch.ImagedTime,112) + REPLACE(CONVERT(varchar(25),Batch.ImagedTime,108),':','')
Run Code Online (Sandbox Code Playgroud)

背景:我正在从远程仪器中提取批量图像,并希望在拍摄它们时对它们进行组织。本地系统为Windows 7,目录名中不允许使用冒号。如果我能得到的话,我会选择一个 UNIX 时间戳,但更喜欢让这个名字有点正常人可读的......

据我从这个日期时间样式列表中可以看出,没有办法说服 SQL Server 2008 给我一个没有冒号的时间,或者让 Windows 7 让我用它们创建一个目录,所以它是 SQL 中的 string-bashing 或Java 中的字符串攻击。

我错过了一些明显的事情吗?

sql-server-2008

3
推荐指数
1
解决办法
5324
查看次数