小编Jac*_*ord的帖子

删除匿名事件侦听器

无论如何要删除像这样添加的事件监听器:

element.addEventListener(event, function(){/* do work here */}, false);
Run Code Online (Sandbox Code Playgroud)

没有替换元素?

javascript greasemonkey addeventlistener userscripts

45
推荐指数
6
解决办法
2万
查看次数

以编程方式使用mailto协议注册Windows程序

如何制作mailto:链接将在我的程序中注册?

那么我如何在我的程序中处理该事件?

我从快速Google搜索中找到的大多数解决方案都是如何手动执行此操作,但如果他们单击按钮(例如"设置为默认电子邮件客户端"),我需要自动为我的程序用户执行此操作.

编辑:

删除了对Delphi的引用,因为答案与您的语言无关.

windows mailto

37
推荐指数
2
解决办法
3万
查看次数

XSD DataSet并忽略外键

我在使用.NET XSD DataSetTableAdapter功能的当前应用程序中有一个非常标准的表设置.我的contracts表包含一些标准合同信息,以及一个列primary department.这列是一个外键到我的Departments表,我在那里储存基本department name,id,notes.这是我的SQL Server中的所有设置和功能.

当我使用XSD工具时,我可以立即拖动两个表,它会自动检测/创建这两个表之间的外键.当我在主页上查看合同数据时,这非常有用.

但是,当我转到我的管理页面来修改部门数据时.我通常做这样的事情:

Dim dtDepartment As New DepartmentDataTable()
Dim taDepartment As New DepartmentTableAdapter()

taDepartment.Fill(dtDepartment)
Run Code Online (Sandbox Code Playgroud)

但是,在这一点上抛出异常,说明这里有一个外键引用,我猜是因为我没有Contract DataTable DataSet填充.

我该如何解决这个问题?我知道我可以简单地删除从XSD的外键使事情做工精细,但有没有额外的完整性检查,并具有XSD架构匹配数据库SQL模式是好的.

.net database xsd

31
推荐指数
1
解决办法
896
查看次数

如何使用jQuery ajax在另一个页面上获取div的html?

我正在使用jQuery的ajax代码来加载新页面,但希望他只获取div的html.

我的代码:HTML:

<body>
    <div id="content"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

脚本:

$.ajax({
   url:href,
   type:'GET',
   success: function(data){
       $('#content').html(data);
   }
});
Run Code Online (Sandbox Code Playgroud)

我希望他在另一页上只获得$('div #content')的html.怎么做?

html javascript jquery

31
推荐指数
4
解决办法
14万
查看次数

逻辑运算符&&和javascript中的两个字符串

当我在两个字符串之间使用逻辑运算符&&时,为什么它会给我第二个字符串作为输出:

console.log("" && "Dog");    // ""
console.log("Cat" && "Dog"); // "Dog"
Run Code Online (Sandbox Code Playgroud)

我意识到有例外0,false,null,undefined,""NaN,一切被评估为布尔在像上面的一个逻辑表达式真.但为什么输出是第二个字符串而不是第一个?为什么输出不仅仅是"真实",因为它被评估为布尔表达式?

javascript string operators

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

对包含数字和字符串的数组进行排序

我试图将包含字符串,数字和数字的数组排序为字符串(例如'1','2').我想对这个数组进行排序,以便排序的数组首先包含数字,然后是包含数字的字符串,最后是字符串.

var arr = [9,5,'2','ab','3',-1 ] // to be sorted
arr.sort()
// arr = [-1, 5, 9, "2", "3","ab"] // expected result
//arr = [-1, "2", 5, 9, "ab"] // actual result
Run Code Online (Sandbox Code Playgroud)

我也试过了

var number =[];
var char =[];
arr.forEach(a=>{
 if(typeof a == 'number') number.push(a);
 else char.push(a);
})
arr = (number.sort((a,b)=> a>b)).concat(char.sort((a,b)=> a>b))
// arr = [-1, 5, 9, "2", "3","ab"] // expected result
//  arr = [-1, 5, 9, "2", "ab", "3"]// actual result
Run Code Online (Sandbox Code Playgroud)

javascript arrays string numbers ecmascript-6

18
推荐指数
3
解决办法
2580
查看次数

Mathematica中的ForEach循环

我想要这样的事情:

each[i_, {1,2,3},
  Print[i]
]
Run Code Online (Sandbox Code Playgroud)

或者,更一般地说,要解构您循环的列表中的任意内容,例如:

each[{i_, j_}, {{1,10}, {2,20}, {3,30}},
  Print[i*j]
]
Run Code Online (Sandbox Code Playgroud)

通常,您希望使用Map或其他纯函数构造,并避免使用副作用的非函数式编程样式.但是这里有一个例子,我认为for-each构造非常有用:

假设我有一个将符号与表达式配对的选项(规则)列表,例如

attrVals = {a -> 7, b -> 8, c -> 9}
Run Code Online (Sandbox Code Playgroud)

现在我想制作一个哈希表,在那里我可以将这些符号明显映射到这些数字.我认为没有比这更清洁的方法了

each[a_ -> v_, attrVals, h[a] = v]
Run Code Online (Sandbox Code Playgroud)

其他测试用例

在此示例中,我们转换变量列表:

a = 1;
b = 2;
c = 3;
each[i_, {a,b,c}, i = f[i]]
Run Code Online (Sandbox Code Playgroud)

在上述之后,{a,b,c}应评估为{f [1],f [2],f [3]}.请注意,这意味着如果它是一个列表,那么"each"的第二个参数应该保持不被评估.

如果未评估的表单不是列表,则应评估第二个参数.例如:

each[i_, Rest[{a,b,c}], Print[i]]
Run Code Online (Sandbox Code Playgroud)

那应该打印b和c的值.

附录:要正确地执行每个操作,它应该支持Break []和Continue [].我不确定如何实现它.也许它需要以For,While或Do的方式实现,因为这些是唯一支持Break []和Continue []的循环结构.

到目前为止答案的另一个问题是:他们吃Return [] s.也就是说,如果您在函数中使用ForEach循环并希望从循环内的函数返回,则不能.在ForEach循环中发出Return似乎像Continue []一样工作.这只是(等待它)把我扔了一圈.

language-features loops wolfram-mathematica

17
推荐指数
4
解决办法
2万
查看次数

隐含字符串比较,0 ='',但1 ='1'

我正在调试一些东西并在JavaScript中发现了一些奇怪之处:

alert(1=='') ==> false
alert(0=='') ==> true
alert(-1=='') ==> false
Run Code Online (Sandbox Code Playgroud)

隐含的字符串比较0应该为'0'是有意义的.对于所有非零值都是如此,但为什么不为零呢?

javascript

17
推荐指数
2
解决办法
3648
查看次数

Express.js中的默认路由

我正在用node.js和express编写一个应用程序.

我已经设置了一个默认路由:

app.get('/', function(req, res){
  res.sendfile('./views/index.html');
});
Run Code Online (Sandbox Code Playgroud)

当我转到/ localhost:port /时,这工作正常

但是在我输入任何内容之后的URL中,/ localhost:port/blah我得到了404 ERROR,这是有意义的.

我想设置一个默认路由,这样无论我在localhost:port /之后输入的是什么,它都应该返回相同的html文件.

我尝试更改/到*:

app.get('*', function(req, res){
  res.sendfile('./views/index.html');
});
Run Code Online (Sandbox Code Playgroud)

但在我这样做后,我开始在控制台中收到此错误,并且没有显示任何内容:

未捕获的SyntaxError:意外的令牌<

在我的所有Javascript文件中:: 3000/scripts/myscript.js:1

不知何故,我的javascript文件显示HTML的内容

===编辑====

我用过这个,它适用于第一级网址:比如loclhost:port/blah

app.use(function(req, res){
    res.sendfile('./views/index.html');
});
Run Code Online (Sandbox Code Playgroud)

但是当URL是多级的时,我看到了与前面描述的相同的问题localhost:port/blah/foo这里的问题是路由器在/ blah文件夹下查找所有javascript和CSS文件的公共目录,在这种情况下,不存在.它返回默认的HTML文件.我该如何解决?

==================编辑发布整个代码=========================== ==============

var http = require('http');
var express = require('express');
var api = require('./routes/api');
var mongoose = require('mongoose');
var app = express();


mongoose.connect('mongodb://localhost/mydb');

app.set('port', process.env.PORT || 3000);
app.set('view engine', 'jade');

app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);

app.use(express.static(__dirname + '/public'));

app.get('/api/user/:userid', api.getUserInfo);

app.get('/', …
Run Code Online (Sandbox Code Playgroud)

javascript url-routing node.js express

17
推荐指数
2
解决办法
4万
查看次数

如何在更改网页一次后刷新网页?

 

function change(){
    item = document.getElementById("first");
    item.value = "second";
    item.id = "second";
}

ob = document.getElementById("first");
ob.addEventListener("click",change); 

 
Run Code Online (Sandbox Code Playgroud)
 
<input id="first" type="button" value="first"> 
 
Run Code Online (Sandbox Code Playgroud)

单击输入时,它变为:

<input id="second" type="button" value="second"> 
Run Code Online (Sandbox Code Playgroud)

我的要求是编写javascript代码,这样当你点击id为的输入时,second网页就会刷新.也就是说,要更改当前的输入元素:

<input id="second" type="button" value="second"> 
Run Code Online (Sandbox Code Playgroud)

进入上一个:

<input id="first" type="button" value="first"> 
Run Code Online (Sandbox Code Playgroud)

这是我的尝试:

 

function change(){
    item = document.getElementById("first");
    item.value = "second";
    item.id = "second";
}

ob = document.getElementById("first");
ob.addEventListener("click",change); 

function previous(){
    document.execCommand('Refresh') 
}

ob = document.getElementById("second");
ob.addEventListener("click",previous); 
 
Run Code Online (Sandbox Code Playgroud)
   <input id="first" type="button" value="first"> 
Run Code Online (Sandbox Code Playgroud)

error:  Uncaught TypeError: Cannot read property 'addEventListener' of null
at  line27.
Run Code Online (Sandbox Code Playgroud)

html javascript html5 webpage refresh

16
推荐指数
4
解决办法
481
查看次数