在 Chrome 中,我注意到在以编程方式更改元素的内容后,对于输入元素,撤消无法正常工作。虽然我对不同的浏览器有不同的行为,但它们并不像 Chrome 那样糟糕。
FF20 good
IE9 some support (undo stack cleared when input loses focus)
Safari5 some support (undo stack cleared when input loses focus)
Chrome26 unreliable
Run Code Online (Sandbox Code Playgroud)
例如,修剪空格的脚本(另请参见下面的 jsfiddle)
现在文本不见了(在 Chome 中)
<input type="text" id="input1" value="hello!">
document.getElementById("input1").addEventListener('blur', function(evt){elementLosesFocus(evt, this);}, false);
function elementLosesFocus(evt, caller)
{
caller.value = caller.value.trim();
}
Run Code Online (Sandbox Code Playgroud)
我认为我能希望的最好的事情是一种在失去焦点时以某种方式清除输入的撤消历史的方法(如 IE 和 Safari 的情况)。
为什么嵌套括号会在此正则表达式中导致空字符串?
var str = "ab((cd))ef";
var arr = str.split(/([\)\(])/);
console.log(arr); // ["ab", "(", "", "(", "cd", ")", "", ")", "ef"]
Run Code Online (Sandbox Code Playgroud)
我想要实现的是这个
["ab", "(", "(", "cd", ")", ")", "ef"]
Run Code Online (Sandbox Code Playgroud) 我不应该逃避"markup4"中的双引号吗?令我惊讶的是这个简单的作品.如果我用它没有的东西替换它们.
<script type="text/javascript">
function test3(){
document.getElementById('div21').innerHTML += '<div class = "markup4"><br>blablablabla1.<br><br></div><div class = "markup3"><br>blablabla2.<br><br></div>';
}
</script>
Run Code Online (Sandbox Code Playgroud) 我正在尝试在JavaScript中编写一个函数来返回给定日期的周数,并且我正在针对我在网络上找到的两个函数测试我的代码,即
http://techblog.procurios.nl/k/n618/news/view/33796/14863/calculate-iso-8601-week-and-year-in-javascript.html
http://www.epoch-calendar.com/support/getting_iso_week.html
Run Code Online (Sandbox Code Playgroud)
我从1970年1月1日开始测试了30,000天,我和第二个来源有一些不同.第一种差异是某些情况下该来源返回零周的情况,这显然是错误的.然后对于其他一些情况,它返回第53周,我的函数返回第1周.这些是日期
他们都看起来像这样
Dec Jan
29 30 31 01 02 03 04 05 06 07 08 09 10
Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th
^^ ^^
Run Code Online (Sandbox Code Playgroud)
根据ISO-8601
1月3日是2013年的第一个星期四,因此1月3日是第1周(2013年)的一天.第1周(2013年)的开始是在星期四之前的星期一,即2012年12月31日.
因此,2012年12月31日必须是第1周.
然而...
我错过了什么吗?困扰我的是,它只发生在如此少的日期(70年或更长时间内的3个日期)
我正在尝试哈希一个字符串.但IE11和Safari中的函数TextEncoder的替代方案是什么?
var string = "foobar";
window.crypto.subtle.digest(
{ "name": "SHA-256" },
new TextEncoder("utf-8").encode(string)).then(function (hash)
{
console.log(hex(hash)); // 'c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2'
}
);
var string = "foobar";
var buffer = new TextEncoder("utf-8").encode(string); // Uint8Array (ArrayBuffer)
var string = new TextDecoder("utf-8").decode(buffer); // string
console.log("buffer", buffer);
console.log("string '" + string + "'");
Run Code Online (Sandbox Code Playgroud)
hex是我从mozilla获得的一个函数
https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
Object.defineProperty有什么用?
var myObj = {someNum: 123};
Object.defineProperty(myObj, "anotherNum",
{value: 456, writable: true, enumerable: true, configurable: true});
alert(myObj.someNum + " " + myObj.anotherNum);
Run Code Online (Sandbox Code Playgroud)
......如果我也可以......
var myObj = {someNum: 321};
myObj.anotherNum = 654;
alert(myObj.someNum + " " + myObj.anotherNum);
Run Code Online (Sandbox Code Playgroud)
我正在使用一些代码来跳过清除Safari中的控制台,因为Safari中没有定义此功能
if (console.clear) { console.clear() };
Run Code Online (Sandbox Code Playgroud)
但是"console.clear"如何评估为真?输出看起来不像真的.
console.log(console.clear);
// undefined Safari
// function() FF
// function clear() { [native code] } Opera, Chrome, IE
Run Code Online (Sandbox Code Playgroud) 以下代码是否更好地防止MySQL数据库上的SQL注入mysqli_real_escape_string?
$str = "SELECT * FROM customers WHERE username = '; DELETE FROM customers WHERE 1 or username = '";
$str2 = "";
for($i = 0; $i < strlen($str); $i++)
{
if (strpos ("abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ,.?!0123456789", $str[$i], 0) !== FALSE)
{
$str2 = $str2 . $str[$i];
}
}
echo "$str2";
Run Code Online (Sandbox Code Playgroud) javascript ×6
buffer ×1
console ×1
date ×1
escaping ×1
innerhtml ×1
input ×1
mysql ×1
parentheses ×1
php ×1
regex ×1
undo ×1
undo-redo ×1
week-number ×1