小编Ale*_*der的帖子

究竟什么是innerHTML,document.write是如何工作的?

考虑以下:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="script.js"></script>
    <script type="text/javascript">
        document.write('<script type="text/javascript" src="script2.js"></scr'+'ipt>');
        document.write('<script type="text/javascript" src="script3.js"></scr'+'ipt>');
        console.log(document.getElementsByTagName("script").length + " Scripts");
        console.log(document.head.innerHTML);
    </script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

你期望console.log包含什么?我希望你能得到我期望的两个结果中的一个:4 Scripts并且头部的innerHTML中显示的两个现有或全部四个脚本标签(document.write也可以写入正文,因此可以预期脚本标记将被注入身体的孩子).

问题是,在Chrome和IE11中,通过document.write添加的第一个脚本标记显示在头部innerHTML,但第二个不是,DOM查询结果是3 Scripts.

有人可以详细说明吗?

html javascript

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

Extjs 3.4 checkchange监听器不在Checkcolumn上工作

我的checkColumn的checkchange监听器无法正常工作.任何想法为什么不呢?

var checked = new Ext.grid.CheckColumn({
  header: 'Test',
  dataIndex: 'condition',
  renderer: function(v,p,record){
        var content = record.data['info'];      
        if(content == 'True'){
              p.css += ' x-grid3-check-col-td'; 
            return '<div class="x-grid3-check-col'+(v?'-on':'')+' x-grid3-cc-'+this.id+'"> </div>';
        }

  },    
  listeners:{
        checkchange: function(column, recordIndex, checked){
              alert("checked");
        }

  }

});
Run Code Online (Sandbox Code Playgroud)

checkbox grid extjs extjs3

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

仅编译thumb1

如何告诉gcc编译成仅限Thumb1的指令?

每个人都知道helloworld.c:

#include <stdio.h>  
main() {  
 printf("Hello world");  
}  
Run Code Online (Sandbox Code Playgroud)

这是我的命令行:

user @ debian-armel:〜$ gcc -mcpu = cortex-m3 -mthumb helloworld.c && objdump -d a.out

瞧:大多数指令是32位宽,而不是我预期的16位.

那么,我做错了什么?

compiler-construction gcc arm thumb

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

Visual C#Collection"map"功能?

在Haskell中我们有这个功能

map (a -> b) -> [a] -> [b]
Run Code Online (Sandbox Code Playgroud)

使用函数更改集合的类型.

C#中有类似的东西吗?

或者,将完整的KeyValuePairs集合放入调试消息中的最快方法是什么?

我想到了......

debugmsg("http response is " + service.HttpResponseHeaders
                                      .Map<string>((k, v) => k + "->" + v)
                                      .Aggregate((s, sx) => s + "," + sx)
                             + ". ");
Run Code Online (Sandbox Code Playgroud)

c# collections map visual-studio

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

SqlParameter和IN语句

我需要以下查询:

createList(string commaSeparatedElements) {
    ...
    SqlCommand query = new SqlCommand("SELECT * FROM table WHERE id IN ("+commaSeparatedElements+")");
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想使用参数化查询来编写它,因此检查字符串中的每个元素以防止Sql-Injections.

伪代码:

createList(string commaSeparatedElements) {
    ...
    SqlParameterList elements = new SqlParameterList("@elements", SqlDbType.Int);
    SqlParameterList.Values = commaSeparatedElements.split(new Char[1] {','});
    SqlCommand query = new SqlCommand("SELECT * FROM table WHERE id IN (@elements)");
    query.Parameters.Add(elements);
    ...
}
Run Code Online (Sandbox Code Playgroud)

C#中是否存在类似的内容,或者我必须自己编写?

编辑:谢谢你的所有答案.当我尽量不使用代码时,我不理解(在过去的日子里有太多不好的经历),精巧和表值参数,即使它们可能完全满足我的需求,也是禁止的.我刚做了一个循环.

string[] elements = commaSeparatedElements.split(new Char[1] {','});
StringList idParamList = new StringList();
for(int i=0;i<elements.Count;i++) {
    query.Parameters.AddWithValue("@element"+i,Convert.ToInt32(elements[i]));
    idParamList.Add("@element" + i);
}
SqlCommand query = new SqlCommand("SELECT * FROM table …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server

5
推荐指数
2
解决办法
8489
查看次数

仅使用默认值或空值插入行

我有一个表格,其中包含不同名称的不同列数.

所有列都是以下之一:

  • 标识列,
  • NULL列,
  • 或者有一个默认值

现在我想在此表中插入一个新行并读取其内容.

我尝试了以下所有方法:

INSERT INTO globalsettings() VALUES()
INSERT INTO globalsettings VALUES()
INSERT INTO globalsettings VALUES
INSERT INTO globalsettings
Run Code Online (Sandbox Code Playgroud)

我错过了正确的语法,还是不能插入全默认行?

sql sql-server sql-server-2008

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

订购......在(...)ASC

我希望首先获得特定位置的所有配置文件:

SELECT * FROM profile
WHERE location IN ('a', 'b', 'c') OR isDefault=1 
ORDER BY location IN ('a', 'b') DESC, -- put to the front if location in 'a','b'
         isDefault DESC,              -- for each of both groups, put default profiles before the others.
         location ASC                 -- and sort each of the up to four groups by location.
Run Code Online (Sandbox Code Playgroud)

这会引发错误:"关键字'IN'附近的语法不正确." 如果我删除了order子句,则返回结果.

这有什么不对?

sql sql-server

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

获取PK的列列表

在SQL Server 2008中,我想获取主键跨越的列(列名称)列表.

我试过了

SELECT * 
FROM sys.key_constraints 
LEFT JOIN sysconstraints ON (sys.key_constraints.object_id = sysconstraints.constid)
WHERE 
    type = 'PK' 
    AND parent_object_id = OBJECT_ID('dbo.permissioncache');
Run Code Online (Sandbox Code Playgroud)

这将返回主键和一些其他值,但不返回PK列的完整列表.

我还需要加入哪些其他表格?

sql sql-server

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

组合框,可自动更正该值

我有一个组合框,可以选择一定的时间跨度,例如:

5 minutes
15 minutes
1 hour
2 hours
1 day
2 days
1 week
2 weeks
Run Code Online (Sandbox Code Playgroud)

它总是向服务器传输分钟数,但用户不会理解"10080"的含义(在您尝试计算之前:它是一周).

新要求是用户应该能够在该框中键入任意值.例如"20分钟","1小时5分钟","2小时5分钟"或"1小时6小时120分钟"; 并且,如果该字段以编程方式设置为某个值(例如75),则该字段应显示正确的字符串(1小时15分钟)

所以我编写了一个解析器和一个格式化程序函数(见下文),但是如何让我的组合框使用它们呢?

我已经尝试覆盖rawToValue/valueToRaw函数对,类似于我在datefield代码中找到的:

rawToValue:function(rawValue) {
    console.log('rawToValue');
    console.log(rawValue);
    return this.parse(rawValue) || rawValue || null;
},
valueToRaw:function(value) {
    console.log('valueToRaw');
    console.log(value);
    return this.format(value);
},
Run Code Online (Sandbox Code Playgroud)

但它们没有被调用,我没有得到任何控制台日志输出.

这些是解析器/格式化程序函数:

Ext.define('AlarmTimeField',{
    extend:'Ext.form.field.ComboBox',
    format:function(minutes) {
        var a = [];
        Ext.each(this.units, function(unit) {
            if(minutes >= unit.minutes) {
                var unitCount = Math.floor(minutes/unit.minutes);
                console.log(unitCount);
                minutes = minutes-unitCount*unit.minutes;
                a.push("" + unitCount + " " + (unitCount==1?unit.singular:unit.plural));
            }
        });
        return a.join(' '); …
Run Code Online (Sandbox Code Playgroud)

javascript combobox extjs extjs6-classic

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

修复损坏的 git 远程存储库

尝试git pull,我收到错误消息:

remote: error: inflate: data stream error (incorrect data check)
remote: error: corrupt loose object '188bf75e9cfba7e0a93fa3a15bdcce6c1b8858c7'
remote: fatal: loose object 188bf75e9cfba7e0a93fa3a15bdcce6c1b8858c7 (stored in 
./objects/18/8bf75e9cfba7e0a93fa3a15bdcce6c1b8858c7) is corrupt
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header
Run Code Online (Sandbox Code Playgroud)

我发现这可能是服务器内存不足造成的,但服务器有超过2GB的可用内存。

我还发现这可以通过在远程存储库上进行垃圾收集来解决,但这也会引发错误:

git gc
Counting objects: 61619, done.
Delta compression using up to 2 threads.
error: inflate: data stream error (incorrect data check)
error: corrupt loose object '188bf75e9cfba7e0a93fa3a15bdcce6c1b8858c7'
fatal: failed …
Run Code Online (Sandbox Code Playgroud)

git

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