当您将鼠标悬停在Trello中的卡片上并按Ctrl+时C,此卡片的URL将被复制到剪贴板.他们如何做到这一点?
据我所知,没有涉及Flash电影.我安装了Flashblock,Firefox网络选项卡显示没有加载Flash电影.(这是通常的方法,例如ZeroClipboard.)
他们如何实现这种魔力?
(此刻我觉得我有一个顿悟:你不能在页面上选择文本,所以我假设他们有一个不可见的元素,他们通过JavaScript代码创建文本选择,并且Ctrl+ C触发浏览器的默认行为,复制那个看不见的节点的文本值.)
我试图在我的Node.js应用程序中支持使用Express.js Web框架的CORS.我已经阅读了有关如何处理此问题的Google小组讨论,并阅读了一些有关CORS如何工作的文章.首先,我这样做了(代码是用CoffeeScript语法编写的):
app.options "*", (req, res) ->
res.header 'Access-Control-Allow-Origin', '*'
res.header 'Access-Control-Allow-Credentials', true
# try: 'POST, GET, PUT, DELETE, OPTIONS'
res.header 'Access-Control-Allow-Methods', 'GET, OPTIONS'
# try: 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'
res.header 'Access-Control-Allow-Headers', 'Content-Type'
# ...
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用.好像我的浏览器(Chrome)没有发送初始OPTIONS请求.当我刚刚更新资源块时,我需要将跨源GET请求提交到:
app.get "/somethingelse", (req, res) ->
# ...
res.header 'Access-Control-Allow-Origin', '*'
res.header 'Access-Control-Allow-Credentials', true
res.header 'Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS'
res.header 'Access-Control-Allow-Headers', 'Content-Type'
# ...
Run Code Online (Sandbox Code Playgroud)
它有效(在Chrome中).这也适用于Safari.
我读过......
在实现CORS的浏览器中,每个跨源GET或POST请求前面都有一个OPTIONS请求,用于检查GET或POST是否正常.
所以我的主要问题是,为什么在我的案例中似乎没有发生这种情况?为什么我的app.options块没有被调用?为什么我需要在主app.get块中设置标题?
我如何使用本地版本的模块node.js
.例如,在我的应用程序中,我安装了coffee-script:
npm install coffee-script
Run Code Online (Sandbox Code Playgroud)
这将安装它./node_modules
并且coffee命令在./node_modules/.bin/coffee
.当我在项目的主文件夹中时,有没有办法运行此命令?我想我正在寻找类似于bundle exec
捆绑器的东西.基本上,我想指定一个与项目有关的每个人都应该使用的咖啡脚本版本.
我知道我可以添加-g
标志来全局安装它,这样咖啡在任何地方都可以正常工作,但如果我想在每个项目中使用不同版本的咖啡呢?
在这样的代码片段中:
gulp.task "coffee", ->
gulp.src("src/server/**/*.coffee")
.pipe(coffee {bare: true}).on("error",gutil.log)
.pipe(gulp.dest "bin")
gulp.task "clean",->
gulp.src("bin", {read:false})
.pipe clean
force:true
gulp.task 'develop',['clean','coffee'], ->
console.log "run something else"
Run Code Online (Sandbox Code Playgroud)
在develop
任务中我想要运行clean
并在完成后运行coffee
,当完成时,运行其他东西.但我无法弄明白.这件作品不起作用.请指教.
在Coffeescript.org上:
bawbag = (x, y) ->
z = (x * y)
bawbag(5, 10)
Run Code Online (Sandbox Code Playgroud)
会编译为:
var bawbag;
bawbag = function(x, y) {
var z;
return (z = (x * y));
};
bawbag(5, 10);
Run Code Online (Sandbox Code Playgroud)
通过node.js下的coffee-script编译包装如下:
(function() {
var bawbag;
bawbag = function(x, y) {
var z;
return (z = (x * y));
};
bawbag(5, 10);
}).call(this);
Run Code Online (Sandbox Code Playgroud)
文件说:
如果要为其他要使用的脚本创建顶级变量,请将它们作为属性附加到窗口或CommonJS中的exports对象上.存在运算符(如下所述)为您提供了一种可靠的方法来确定添加它们的位置,如果您的目标是CommonJS和浏览器:root = exports?这个
如何在CoffeeScript中定义全局变量."将它们作为窗口上的属性附加"是什么意思?
我需要设置值a
取决于条件.
使用CoffeeScript执行此操作的最短方法是什么?
这就是我在JavaScript中的表现:
a = true ? 5 : 10 # => a = 5
a = false ? 5 : 10 # => a = 10
Run Code Online (Sandbox Code Playgroud) 请告诉我如何在coffeescript中写下面的javascript.
setTimeout(function(){
something(param);
}, 1000);
Run Code Online (Sandbox Code Playgroud) 如果我想编写node.js并使用CoffeeScript,我的限制是什么?我可以做任何我能用JS做的事吗?
我有一个对象(一个"关联数组",也就是说 - 也称为普通的JavaScript对象):
obj = {}
obj["Foo"] = "Bar"
obj["bar"] = "Foo"
Run Code Online (Sandbox Code Playgroud)
我想迭代obj
使用CoffeeScript,如下所示:
# CS
for elem in obj
Run Code Online (Sandbox Code Playgroud)
上面的CS代码编译成JS:
// JS
for (i = 0, len = obj.length; i < len; i++)
Run Code Online (Sandbox Code Playgroud)
这种情况不合适.
JavaScript的方式会是,for(var key in obj)
但现在我想知道:我怎么能在CoffeeScript中做到这一点?
我有这个简单的脚本:
var exec = require('child_process').exec;
exec('coffee -cw my_file.coffee', function(error, stdout, stderr) {
console.log(stdout);
});
Run Code Online (Sandbox Code Playgroud)
我只是执行一个命令来编译一个咖啡脚本文件.但是stdout永远不会在控制台中显示,因为命令永远不会结束(因为咖啡的-w选项).如果我直接从控制台执行命令,我得到这样的消息:
18:05:59 - compiled my_file.coffee
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否可以使用node.js exec显示这些消息?如果有,怎么样?!
谢谢
coffeescript ×10
javascript ×7
node.js ×5
clipboard ×1
cors ×1
express ×1
gulp ×1
node-modules ×1
npm ×1
settimeout ×1
trello ×1