如何检查是否以跨浏览器的方式定义了JavaScript变量?
在使用FireBug日志记录编写一些JavaScript时遇到了这个问题.我写了一些代码如下:
function profileRun(f) {
// f: functions to be profiled
console.profile(f.constructor);
f();
console.profileEnd(f.constructor);
}
Run Code Online (Sandbox Code Playgroud)
它在FireFox/FireBug中工作正常,但它在IE8 RC1中报告错误.所以,我想检查执行环境中是否存在控制台变量.
下面的代码在FireFox中工作正常,但在IE8 RC1中没有.
function profileRun(f) {
if (console != undefined) {
console.profile(f.constructor);
}
f();
if (console != undefined) {
console.profileEnd(f.constructor);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做的话.它适用于IE8 RC1.为什么?
function profileRun(f) {
if (window.console != undefined) {
console.profile(f.constructor);
}
f();
if (window.console != undefined) {
console.profileEnd(f.constructor);
}
}
Run Code Online (Sandbox Code Playgroud)
是否有任何跨浏览器的方式来检查它?
我希望能够运行单个spec文件的测试 - 例如,我正在编辑的一个文件. rake spec
执行所有规格.我的项目不是Rails项目,所以rake spec:doc
不起作用.
不知道这是否重要,但这是我的目录结构.
./Rakefile ./lib ./lib/cushion.rb ./lib/cushion ./lib/cushion/doc.rb ./lib/cushion/db.rb ./spec ./spec/spec.opts ./spec/spec_helper.rb ./spec/db_spec.rb
我不知道我是否只是有某种盲点或什么,但我已多次阅读OAuth 2规范并仔细阅读邮件列表档案,我还没有找到一个很好的解释为什么隐含格兰特已经开发出用于获得访问令牌的流程.与授权代码授予相比,似乎只是放弃了客户端身份验证,没有非常令人信服的理由.这是如何"针对使用脚本语言在浏览器中实现的客户端进行优化"(引用规范)?
两个流程都是相同的(来源:http://tools.ietf.org/html/draft-ietf-oauth-v2-22):
这是流量分裂的地方.在这两种情况下,此时重定向URI都是由客户端托管的某个端点:
因此我的问题是:通过跳过客户端身份验证步骤获得了什么?
当我遇到一些真实性令牌问题时,我正在研究一个新的Rails 4应用程序(在Ruby 2.0.0-p0上).
在编写响应json的控制器时(使用respond_to
类方法),当我尝试使用创建记录时,我create
开始ActionController::InvalidAuthenticityToken
尝试异常curl
.
我确定我设置-H "Content-Type: application/json"
并设置数据,-d "<my data here>"
但仍然没有运气.
我尝试使用Rails 3.2(在Ruby 1.9.3上)编写相同的控制器,并且我没有任何真实性令牌问题.我四处搜索,看到Rails 4中的真实性令牌发生了一些变化.据我所知,它们不再自动插入表格了?我想这会以某种方式影响非HTML内容类型.
有没有办法解决这个问题,而无需请求HTML表单,抢夺真实性令牌,然后使用该令牌发出另一个请求?还是我完全错过了一些非常明显的东西?
编辑:我刚尝试使用脚手架在新的Rails 4应用程序中创建一个新记录而不改变任何东西,我遇到了同样的问题所以我想这不是我做的事情.
我有一个bash shell脚本循环遍历某个目录的所有子目录(但不是文件).问题是某些目录名称包含空格.
以下是我的测试目录的内容:
$ls -F test
Baltimore/ Cherry Hill/ Edison/ New York City/ Philadelphia/ cities.txt
Run Code Online (Sandbox Code Playgroud)
以及遍历目录的代码:
for f in `find test/* -type d`; do
echo $f
done
Run Code Online (Sandbox Code Playgroud)
这是输出:
test/Baltimore test/Cherry Hill test/Edison test/New York City test/Philadelphia
Cherry Hill和纽约市被视为2或3个单独的条目.
我尝试引用文件名,如下所示:
for f in `find test/* -type d | sed -e 's/^/\"/' | sed -e 's/$/\"/'`; do
echo $f
done
Run Code Online (Sandbox Code Playgroud)
但无济于事.
必须有一个简单的方法来做到这一点.
以下答案很棒.但为了使这更复杂 - 我并不总是想使用我的测试目录中列出的目录.有时我想将目录名称作为命令行参数传递.
我接受了查尔斯关于设置IFS的建议,并提出了以下建议:
dirlist="${@}"
(
[[ -z "$dirlist" ]] && dirlist=`find test -mindepth 1 -type d` && IFS=$'\n'
for …
Run Code Online (Sandbox Code Playgroud) 首先抱歉第10,000次RegEx问题,
我意识到还有其他与域相关的问题,但正则表达式要么不正常,要么太复杂,要么对于具有子域,协议和文件路径的URL.
我更简单,我需要验证一个域名:
google.com
stackoverflow.com
所以这是一个最新形式的域名 - 甚至不是像www这样的子域名.
编辑:TLD显然是2-6个字符
没有.4修订版: TLD实际上应该被标记为"子域名",因为它应该包含像.co.uk这样的东西 - 我想可能的唯一验证(除了检查列表之外)将是'在第一个点之后应该有一个或者规则#1下的更多角色
非常感谢,相信我,我确实尝试过!
Socket.IO似乎是最流行和最活跃的WebSocket仿真库.Juggernaut使用它来创建一个完整的pub/sub系统.
Faye也很受欢迎,并拥有自己的javascript库,使其完整的功能可与Juggernaut相媲美.Juggernaut使用节点作为其服务器,而Faye可以使用节点或机架.Juggernaut使用Redis进行持久化(更正:它使用Redis作为pub/sub),而Faye只将状态保存在内存中.
有什么区别 - 技术,哲学,概念或其他 - 之间
raise "foo"
Run Code Online (Sandbox Code Playgroud)
和
raise Exception.new("foo")
Run Code Online (Sandbox Code Playgroud)
?
现在,如果我使用我的测试套件rake spec
我得到一个错误:
1) SegmentsController GET 'index' should work Failure/Error: get 'index' undefined method `locale' for # # ./spec/controllers/segments_controller_spec.rb:14: in `block (3 levels) in '
这是正常的,因为我有一个错误:)
问题是跟踪不是很有帮助.我知道它突破了segments_controller_spec.rb
,第14行,但这只是我称之为测试的地方:
### segments_controller_spec.rb:14
get 'index'
Run Code Online (Sandbox Code Playgroud)
我更喜欢实际的断行和完整的跟踪,而不是spec文件夹中的部分.
跑步--trace
并没有帮助.
ruby ×4
bash ×2
rspec ×2
testing ×2
bayeux ×1
dom ×1
domain-name ×1
exception ×1
javascript ×1
juggernaut ×1
loops ×1
oauth ×1
oauth-2.0 ×1
regex ×1
rspec2 ×1
shell ×1
socket.io ×1
undefined ×1
user-agent ×1
validation ×1
websocket ×1
whitespace ×1
zsh ×1