在IE上,我可以使用(非常非标准但可以正常工作)jQuery来实现这一点
if ($.browser.msie)
$(document).keydown(function(e) { if (e.keyCode == 8) window.event.keyCode = 0;});
Run Code Online (Sandbox Code Playgroud)
但有可能以一种适用于Firefox的方式,或以跨浏览器的方式获得奖金吗?
作为记录:
$(document).keydown(function(e) { if (e.keyCode == 8) e.stopPropagation(); });
Run Code Online (Sandbox Code Playgroud)
什么也没做.
$(document).keydown(function(e) { if (e.keyCode == 8) e.preventDefault(); });
Run Code Online (Sandbox Code Playgroud)
解决了问题,但是在页面上呈现退格键不可用,这比原始行为更糟糕.
编辑:我这样做的原因是我不是创建一个简单的网页,而是一个大型的应用程序.因为你在错误的地方按下退格键而失去10分钟的工作是令人难以置信的烦恼.通过防止退格键导航回来,防止错误与烦人用户的比例应该高于1000/1.
编辑2:我不是想阻止历史导航,只是意外事故.
EDIT3:@brentonstrines评论(因为这个问题非常受欢迎而搬到这里):这是一个长期的'修复',但你可以抛弃你的支持Chromium bug来改变webkit中的这种行为
好吧,我有一个文件test.txt
#test.txt odsdsdoddf112 test1_for_grep dad23392eeedJ test2 for grep Hello World test garbage
我想提取后面有空格的字符串.我使用了以下表达式并且它有效
grep -o [[:alnum:]]*.[[:blank:]] test.txt
它的输出是
odsdsdoddf112 dad23392eeedJ test2 for Hello World
但问题是grep会打印出所有带有空格的字符串,我希望它在第一次匹配后停止,然后进入第二行.
我应该在这里使用哪个表达式,以便在第一次匹配后停止并移至下一行?
这个问题可以通过gawk或其他工具解决,但我将欣赏一个仅使用grep的解决方案.
编辑 我在Linux系统上使用GNU grep 2.5.1,如果这是相关的.
编辑
在下面给出的答案的帮助下,我试着运气
grep -o ^[[:alnum:]]* test.txt grep -Eo ^[[:alnum:]]+ test.txt
两个人都给了我正确的答案.
现在令我惊讶的是我尝试过使用
grep -Eo "^[[:alnum:]]+[[:blank:]]" test.txt
正如这里建议但没有得到正确的答案.这是我终端上的输出
odsdsdoddf112 dad23392eeedJ test2 for Hello World
但RichieHindle和Adrian Pronk的评论显示他们的系统输出正确.任何人都知道为什么我也没有在我的系统上得到相同的结果.任何的想法?任何帮助将不胜感激.
编辑
好吧,似乎grep 2.5.1有一些bug,因为我的输出不正确.我安装了grep 2.5.4,现在它正常工作.有关详细信息,请参阅此链接.
当我尝试访问我的一个C#项目资源中的字符串属性时,我收到以下错误:
Run Code Online (Sandbox Code Playgroud)'ORG.PRJ.MOD.MyClass2' does not contain a definition for 'Properties'
产生错误的代码是:
string s = MyClass2.Properties.Resources.TestString2;
Run Code Online (Sandbox Code Playgroud)
真正奇怪的是,我的解决方案中的另一个项目(使用MyClass和TestString)具有完全相同的设置不会产生错误并且像冠军一样工作.这是背景和我尝试过的所有事情.
我确信我的问题很常见,我几乎可以肯定它没有简单的解决方案.
所以:我有一个界面:
public interface Task<E> extends Serializable {
Task<E>[] splitTask (int partsNum);
E mergeSolutions (E... solutions);
E solveTask ();
E getSolution ();
Integer getId ();
void setId (Integer id);
}
Run Code Online (Sandbox Code Playgroud)
我也有它的实现 - BubbleSortTask,它的代码并不有趣.这个设计的主要思想是:我们可以将巨大的任务分解为子任务,解决每个子任务然后合并解决方案:
Integer[] array = {1, 4, 9, 3, 3, 0, 8, 2, 6};
BubbleSortTask bst = new BubbleSortTask (array);
Task[] ts = bst.splitTask (2);
for (Task t : ts) {
t.solveTask ();
}
bst.mergeSolutions (((BubbleSortTask)ts[0]).getSolution (),
((BubbleSortTask)ts[1]).getSolution ());
Run Code Online (Sandbox Code Playgroud)
它运作良好.但是在一般情况下我不应该对具体实现有所了解,我想做这样的事情:
public void processTask (Task t, int subtasksNum) {
Task[] …
Run Code Online (Sandbox Code Playgroud) 我看到我可以使用mapArray在可变数组上映射函数,但似乎没有像mapM(和mapM_)那样的东西.mapArray不会让我打印它的元素,例如:
import Data.Array.Storable
arr <- newArray (1,10) 42 :: IO -- answer to Life, Universe and Everything
x <- readLn :: IO Int
mapArray (putStrLn.show) arr -- <== this doesn't work!
Run Code Online (Sandbox Code Playgroud)
结果将是:
No instances for (MArray StorableArray Int m,
MArray StorableArray (IO ()) m)
arising from a use of `mapArray' at <interactive>:1:0-27
Possible fix:
add an instance declaration for
(MArray StorableArray Int m, MArray StorableArray (IO ()) m)
In the expression: mapArray (putStrLn . show) arr
In the definition of …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个从切换按钮扩展的简单自定义控件,允许用户直接在XAML中指定已检查和未检查的内容.它运行良好,但它基于一个触发器,我不知道如何定义触发器,除了一个样式.如果我定义样式,那么我将失去在自定义控件之外设置的任何内容.
我希望能够做的只是将此触发器附加到控件上其他位置设置的任何现有样式.
这是样式/触发器的XAML.
<ToggleButton.Style>
<Style TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Content" Value="{Binding RelativeSource={RelativeSource Self}, Path=UncheckedContent}" />
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Content"
Value="{Binding RelativeSource={RelativeSource Self}, Path=CheckedContent}" />
</Trigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
Run Code Online (Sandbox Code Playgroud)
我尝试使用默认类型通过BasedOn继承样式,但如果自定义控件具有由其父级设置的显式样式,则它将无法工作.我也考虑过EventTriggers,但我不相信会有一个事件来初始化控件.
感谢任何人都能提供的帮助.:)
我必须在我的新公司开始使用CVS,以便我可以与所有*nix用户的开发人员很好地合作.我碰巧是Windows Vista用户,很遗憾没有能力很快切换.我也不是一个命令行大师,所以任何简化的方法对我来说都是理想的.
我今天发现了TortoiseCVS并且看起来非常直接,尽管它说Vista上没有直接支持它,这让我有点担心.
我的问题: