如果按下"F2",我想打开新窗口.下面的代码newWindow is null在firefox中给出了错误信息.如果我不使用弹出窗口阻止程序,它可以工作.在IE中也一样.即使弹出窗口阻止器,它也可以在chrome中工作.
hotkeys: {
"f3" : function () {
url = "http://www.vse.cz";
var newWindow = window.open(url, '_blank');
newWindow.focus();
return false;
},
Run Code Online (Sandbox Code Playgroud)
Q1:我可以让它适用于所有浏览器,因此用户在使用热键插件时无需更改设置吗?
Q2:为什么使用JavaScript代替目标打开新窗口在Firefox中没有任何麻烦?这是因为它是一个链接,而不是使用热键插件?
我的理解是,上面的脚本以某种方式操纵用户点击链接时会发生什么.它改变了点击的属性,因此浏览器"不知道"它是新窗口,因此绕过了弹出窗口阻止程序.
在我的情况下,我使用由其他东西触发的纯js函数,而不是用户点击.并且'我的函数'不会更改任何html对象的属性.我认为这是不同的.我不确定我是不是在这里.
我想格式化ruby中字符串的输出.我可以用%来做,但我无法弄清楚.
而不是201107070928我想输出2011\07\070928
puts "%.4s\\%.2s\\%s" % "201107070928"
Run Code Online (Sandbox Code Playgroud)
给我一个错误:'%':参数太少(ArgumentError)
我通过检查了我的代码库
'svn co svn+ssh://radek@repository.server.com/var/lib/svne2/edumate2/trunk/ trunk/'
我写了一些小的web应用程序来做合并并检入代码库,它运行良好.现在我想让开发人员使用这个应用程序.现在所有提交都是以我的名义提出的.
如何在不同的svn用户下进行提交?
我尝试过svn --username kon ci -m 'EDU-8319 into trunk' /srv/www/htdocs/merging/trunk,但是以我的名义成功提交.svn没有显示任何错误,也没有要求kon的密码.
我有一个工作脚本,列出目录中的所有pdf文件.它按预期工作,但我需要的只是第一个pdf文件的文件名.然后我想打破,eachFileMatch()因为目录中可能有数千个pdf文件.
我尝试使用find从这个休息从groovy每个闭包答案之后,eachFileMatch().find但没有工作Caught: groovy.lang.MissingMethodException: No signature of method: java.io.File.eachFileMatch() is applicable for argument types: (java.util.regex.Pattern) values: [.*.(?i)pdf]
def directory="c:\\tmp" // place 2 or more pdf files in that
// directory and run the script
def p = ~/.*.(?i)pdf/
new File( directory ).eachFileMatch(p) { pdf ->
println pdf // and break
}
Run Code Online (Sandbox Code Playgroud)
谁能让我知道怎么做?
我正从论坛中提取数据.我的脚本基于工作正常.现在我需要从单个帖子中提取日期和时间(2009年12月21日,20:39).我无法让它发挥作用.我使用FireXPath来确定xpath.
示例代码:
require 'rubygems'
require 'mechanize'
post_agent = WWW::Mechanize.new
post_page = post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')
puts post_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div[2]/text()').to_s.strip
puts post_page.parser.at_xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div[2]/text()').to_s.strip
puts post_page.parser.xpath('//[@id="post1960370"]/tbody/tr[1]/td/div[2]/text()')
Run Code Online (Sandbox Code Playgroud)
我的所有尝试都以空字符串或错误结束.
我找不到有关在Mechanize中使用Nokogiri的任何文档.Mechanize文档在页面底部显示:
使用Mechanize导航到需要刮擦的页面后,使用Nokogiri方法刮取它.
但有什么方法呢?我在哪里可以通过样本和解释语法阅读它们?我也没有在Nokogiri的网站上找到任何东西.
我认为机械化默认遵循重定向...我的脚本在重定向页面结束.我怎么处理这个?
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get("http://www.vbulletin.org/forum/index.php")
login_form = page.form_with(:action => 'login.php?do=login')
login_form['vb_login_username'] = 'user name'
login_form['vb_login_password'] = ''
login_form['vb_login_md5password_utf'] = 'md5 hash from the password'
login_form['vb_login_md5password'] = 'md5 hash from the password'
page = agent.submit login_form
#Display welcome message if logged in
puts page.parser.xpath("/html/body/div/table/tr/td[2]/div/div").xpath('text()').to_s.strip
output = File.open("login.html", "w") {|f| f.write(page.parser.to_html) }
Run Code Online (Sandbox Code Playgroud)
重定向页面html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></head>
<body>
<noscript>
<meta http-equiv="Refresh" content="2; URL=http://www.vbulletin.org/forum/index.php">
</noscript> …Run Code Online (Sandbox Code Playgroud) 我有14列的csv文件,我想在红宝石中按第6列排序,然后排在第2列,然后排在第11列.
有很好的方法.sort_by但它只适用于两列,不是吗.并array_of_arrays.sort_by {|e| [e[2], e[0],e[1]],}不起作用.
所以让我们说在下面的示例中我希望它按第3列,第1列,第2列排序
array_of_arrays = [[1,9,'a'],[2,2,'a'], [2,6,'b'], [1,3,'a'], [2,1,'b']]
array_of_arrays.each {|line| puts line.inspect }
puts
array_of_arrays.sort_by {|e| [e[2], e[0]]} .each {|line| puts line.inspect }
Run Code Online (Sandbox Code Playgroud)
但结果并不理想
[1, 9, "a"]
[2, 2, "a"]
[2, 6, "b"]
[1, 3, "a"]
[2, 1, "b"]
[1, 9, "a"]
[1, 3, "a"]
[2, 2, "a"]
[2, 6, "b"]
[2, 1, "b"]
Run Code Online (Sandbox Code Playgroud) 我有代码按我想要的方式排序.由多个领域.凉.但现在我意识到有时元素可能是零.
Q1:任何想法如何设法在搜索的顶部获得零值?并摆脱此错误消息:in "<=>": undefined method "<=>" for nil:NilClass (NoMethodError)
Q2:在下面的代码中我按3个元素排序可以通过e [2]以某种方式定义asc,按e [0]和asc按e [1].我正在排序csv文件,大多数字段将是文本字段.
array_of_arrays = [[1,9,'a'],[2,2,'a'], [2,6,''], [1,3,'a'], [2,1,'']] #doesnt work
array_of_arrays = [[1,9,'a'],[2,2,'a'], [2,6,'b'], [1,3,'a'], [2,1,'b']] # works
array_of_arrays.each {|line| p line }
puts
array_of_arrays.sort_by {|e| [e[2], e[0], e[1]]} .each {|line| p line }
Run Code Online (Sandbox Code Playgroud) 我的脚本从网上下载文件,然后将它们保存在从同一个Web服务器获取的名称下.我需要在Windows NTFS下为文件/文件夹名称过滤 /删除无效字符.
我也很乐意使用多平台过滤器.
注意:类似的东西htmlentities会很棒....
还有其他simple,nicer方法吗?
require 'pp'
a1 = ["02/28/10","Webinars","131","0","26 Feb 2010","0","3d, 8h, 49m, 18s"]
a2 = ["02/20/10","Webinars","131","9","26 Feb 2010","0","3d, 8h, 49m, 18s"]
def compare(array1,array2,ignore)
tmp1 = Array.new
tmp2 = Array.new
0.upto(array1.length-1) {|index|
if !ignore.include?(index)
tmp1 << array1[index]
tmp2 << array2[index]
end
}
if tmp1 == tmp2
return true
else
return false
end
end
pp a1
pp a2
puts
puts compare(a1,a2,[0,3])
Run Code Online (Sandbox Code Playgroud)
而输出是
["02/28/10", "Webinars", "131", "0", "26 Feb 2010", "0", "3d, 8h, 49m, 18s"]
["02/20/10", "Webinars", "131", "9", "26 Feb 2010", "0", …Run Code Online (Sandbox Code Playgroud)