小编Dan*_*ert的帖子

专注于非输入/锚元素?

我正在研究一些需要可以获得焦点的标记的JavaScript.我希望能够使用<div />标签,但<div />标签无法获得焦点.

看起来可以获得焦点的唯一元素是<input />标签和<a />标签.有没有其他方法可以让元素获得非焦点<input /><a />标记的焦点?

我不能使用<a /><input />标记因为我需要能够将内容放在标记内部,所以这些标记都不会起作用,除非有办法允许嵌套<a />标记,尽管我怀疑它是否违反了标准.我试图想出一种方法来允许<div />标签(或任何其他容器元素)获得焦点.

html javascript dom

10
推荐指数
1
解决办法
1万
查看次数

最简洁的方法来确定变量是否等于"列表"值的值

如果我在C#中有一个变量需要检查以确定它是否等于一组变量之一,那么最好的方法是什么?

我不是在寻找将该集存储在数组中的解决方案.我更好奇的是看是否有一种解决方案以某种方式使用布尔逻辑来得到答案.

我知道我可以这样做:

int baseCase = 5;
bool testResult = baseCase == 3 || baseCase == 7 || baseCase == 12 || baseCase == 5;
Run Code Online (Sandbox Code Playgroud)

我很想知道我是否可以做更像这样的事情:

int baseCase = 5;
bool testResult = baseCase == (3 | 7 | 12 | 5);
Run Code Online (Sandbox Code Playgroud)

显然上面的内容不起作用,但是我有兴趣看看是否有比我的第一个例子更简洁的东西,它必须为每个测试值一遍又一遍地重复相同的变量.

更新:
我决定接受CoreyN的答案,因为它似乎是最简单的方法.我认为这很实用,对于新手来说仍然很简单.

不幸的是,在我工作的地方,我们的系统使用的是.NET 2.0框架,并且很快就无法升级.有没有其他解决方案不依赖.NET 3.5框架,除了我能想到的最明显的解决方案:

new List<int>(new int[] { 3, 6, 7, 1 }).Contains(5);
Run Code Online (Sandbox Code Playgroud)

c# logic boolean-logic

9
推荐指数
1
解决办法
3432
查看次数

小软件如何修补大软件?

我一直想知道的一件事是软件补丁是如何工作的.很多软件似乎只是在他们的二进制文件上发布需要安装在旧版本上的新版本,但是某些软件(特别是像Windows这样的操作系统)似乎能够发布非常小的补丁来纠正错误或为现有功能添加功能软件.

大多数情况下,我看到的补丁不可能取代整个应用程序,甚至是应用程序中使用的小文件.对我来说,似乎正在修改实际的二进制文件.

这些补丁实际上是如何实现的?任何人都可以向我指出解释其工作原理的任何资源,还是像在应用程序中替换诸如链接库之类的小组件一样简单?

我可能永远不需要以这种方式进行部署,但我很想知道它是如何工作的.如果我理解补丁只能修改二进制文件的某些部分是正确的,那么在.NET中可以做到这一点吗?如果它是我想学习它,因为这是我最熟悉的框架,我想了解它是如何工作的.

patch software-distribution

9
推荐指数
1
解决办法
1860
查看次数

使用jQuery以编程方式在Javascript for IE中触发事件

当IE中的用户触发事件时,它将设置为该window.event对象.查看触发事件的唯一方法是访问window.event对象(据我所知)

如果以编程方式触发事件(例如通过jQuery触发事件),则会导致ASP.NET验证程序出现问题.在这种情况下,window.event对象存储最后一个用户触发的事件.

当以onchange编程方式触发事件并为其附加了ASP.NET验证程序的文本框启动时,验证会中断,因为它正在查看触发上一个事件的元素,而该事件不是验证程序所针对的元素.

有没有人知道这方面的方法?这似乎是一个可以解决的问题,但从在线看,大多数人只是想方设法忽略问题而不是解决问题.


为了解释我正在做什么:
我在一个文本框上使用了一个jQuery时间选择器插件,该插件还有两个与之关联的ASP.NET验证器.当时间改变时,我正在使用更新面板回发到服务器以动态地执行某些操作,因此我需要触发onchange事件以触发该文本框的回发.

jQuery时间选择器通过创建隐藏的无序列表来操作,该列表在单击文本框时可见.单击其中一个列表项时,将通过jQuery的change()方法以编程方式为文本框触发"更改"事件.

因为事件的触发器是一个列表项,IE将列表项视为事件的来源,而不是文本框,就像它应该的那样.

一旦文本框改变,我就不太关心这个ASP.NET验证器工作了,我只需要处理" change"事件,这样就可以为文本框调用我的回发事件.问题是验证器在IE中抛出一个异常,阻止任何事件被触发.

Firefox(我假设其他浏览器)没有这个问题.由于事件模型不同,只有IE.有没有人遇到过这个并看过如何修复它?


我发现这个问题报告了其他几个地方,但他们没有提供解决方案:

javascript asp.net jquery internet-explorer

9
推荐指数
2
解决办法
8854
查看次数

在网页上混合安全和非安全内容 - 这是一个好主意吗?

我正试图想出加快我的安全网站的方法.因为需要加载很多CSS映像,所以它可能会降低站点的速度,因为浏览器不会将安全资源缓存到磁盘,并且必须比实际需要更频繁地检索它们.

我考虑的一件事可能是将基于样式的图像和javascript库移动到非安全的子域,以便浏览器可以缓存这些不会带来安全风险的资源(渐变不是完全敏感的材料).

我想看看别人怎么想做这样的事情.这是一个可行的想法,还是应该以其他方式优化我的网站,比如使用CSS sprite-maps等来减少请求和带宽?

web-optimization

9
推荐指数
1
解决办法
2491
查看次数

当文件变得可访问时是否可以引发事件?

在C#中,我可以使用FileSystemWatcher对象来监视特定文件,并在创建,修改等事件时引发事件.

我在这个类中遇到的问题是,即使创建文件的进程仍在编写过程中,它也会在创建文件的那一刻引发事件.我发现这是非常有问题的,特别是如果我试图读取类似XML文档的东西,其中文件必须具有一些结构,在完成编写之前不会存在.

.NET(最好是2.0)是否有任何方法可以在文件可访问后引发事件,或者我是否必须不断尝试读取该文件,直到它不会抛出异常才知道它可用?

.net c# file-io

7
推荐指数
2
解决办法
2046
查看次数

如何标记要删除的文件夹C#

如何在系统重新启动时使用C#标记一个文件夹以进行删除.

谢谢,

c# windows

7
推荐指数
1
解决办法
4077
查看次数

没有完整PostBacks的ASP.NET JavaScript回调?

我即将在我公司的应用程序中启动一个相当Ajax的重要功能.我需要做的是每隔几分钟就让用户在页面上进行一次Ajax回调.

  • 我不需要在回调之前,之后或期间进行任何DOM更新.
  • 我不需要页面中的任何信息,只需要始终与请求一起发送的站点cookie和ID值.

我很想知道的是,是否有任何干净简单的方法可以对ASP.NET页面进行JavaScript Ajax回调,而无需在页面上回发其余信息.如果可能的话,我不想这样做.

我真的只是希望能够在页面上调用单个方法,没有别的.

此外,我受限于ASP.NET 2.0,所以我不能使用任何新的3.5框架ASP AJAX功能,虽然我可以使用2.0 AJAX扩展的2.0框架.

更新
我决定接受DanP的回答,因为它似乎正是我正在寻找的.我们的网站已经使用jQuery来做某些事情,所以我可能会使用jQuery来发出请求,因为根据我的经验,它似乎比ASP的AJAX框架表现得更好.

您认为将数据传输到IHttpHandler的最佳方法是什么?我应该将变量添加到查询字符串中还是POST我需要发送的数据?

我认为我必须发送的唯一内容是单个ID,但我无法确定发送ID的最佳方法是什么,并让IHttpHandler处理它.我想提出一个解决方案,防止具有基本计算机技能的人意外或故意直接访问该页面或重复请求.这可能吗?

javascript asp.net ajax

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

来自Image的跨站点脚本

我的网站上有一个富文本编辑器,我正在尝试防范XSS攻击.我想我已经完成了所有处理,但我仍然不确定如何处理图像.现在我正在使用以下正则表达式验证图像URL,我假设它将阻止内联javascript XSS攻击:

"https?://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+"
Run Code Online (Sandbox Code Playgroud)

我不确定的是,这让我对远程图像的XSS攻击有多开放.连接外部图像是否存在严重的安全威胁?

我唯一能想到的是输入的URL引用了一个资源,该资源返回" text/javascript"作为其MIME类型而不是某种图像,然后执行javascript.

那可能吗?我应该考虑其他安全威胁吗?

security xss

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

使用XPath从Atom XML文档中选择无节点?

我正在尝试以编程方式解析Atom提要.我将原子XML下载为字符串.我可以将XML加载到XmlDocument.但是,我无法使用XPath遍历文档.每当我尝试,我都会null.

我一直在使用这个Atom提要作为测试:http://steve-yegge.blogspot.com/feeds/posts/default

除了我使用" " 时,调用SelectSingleNode()总是返回.这是我现在正在尝试的:null/

using (WebClient wc = new WebClient())
{
    string xml = wc.DownloadString("http://steve-yegge.blogspot.com/feeds/posts/default");
    XmlNamespaceManager nsMngr = new XmlNamespaceManager(new NameTable());
    nsMngr.AddNamespace(string.Empty, "http://www.w3.org/2005/Atom");
    nsMngr.AddNamespace("app", "http://purl.org/atom/app#");
    XmlDocument atom = new XmlDocument();
    atom.LoadXml(xml);
    XmlNode node = atom.SelectSingleNode("//entry/link/app:edited", nsMngr);
}
Run Code Online (Sandbox Code Playgroud)

我以为它可能是因为我的XPath,所以我也尝试了一个简单的根节点查询,因为我知道root应该工作:

// I've tried both with & without the nsMngr declared above
XmlNode node = atom.SelectSingleNode("/feed");
Run Code Online (Sandbox Code Playgroud)

无论我做什么,似乎都无法选择任何东西.显然我错过了一些东西,我只是无法弄清楚是什么.为了使XPath能够在这个Atom提要上工作,我需要做些什么?

编辑

虽然这个问题有答案,但我发现这个问题几乎完全重复:SelectNodes不能处理stackoverflow feed

c# xml xpath xmldocument atom-feed

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