如何将参数传递给事件的处理程序?
这是我想要做的,不起作用:
for (var i = 0; i < myobj.length; i++) {
myobj[i].onmouseover = myfun(myobj[i]);
}
Run Code Online (Sandbox Code Playgroud)
以下不起作用.
myobj[i].onmouseover = myfun.call(myobj[i]);
myobj[i].onmouseover = function () {myfun(myobj[i]);};
myobj[i].onmouseover = function () {myfun.call(myobj[i]);};
Run Code Online (Sandbox Code Playgroud)
我主要感兴趣的是它为什么不起作用,以及相同风格的解决方案.
谢谢.
假设我要压缩这个目录〔c:/ Users/xah/ErgoEmacs_Source/ergoemacs/build-util /〕
我希望输出目录是〔c:/ Users/xah/xx2 /〕
(我现在的目录可能在任何地方.我在elisp程序中调用zip)所以我这样做
zip -r c:/Users/xah/xx2/build-util.zip c:/Users/xah/ErgoEmacs_Source/ergoemacs/build-util/
Run Code Online (Sandbox Code Playgroud)
然后zip将记录这样的完整路径
adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/ (stored 0%)
adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/.svn/ (stored 0%)
adding: Users/xah/ErgoEmacs_Source/ergoemacs/build-util/.svn/all-wcprops (deflated 56%)
...
Run Code Online (Sandbox Code Playgroud)
我希望路径只是以build-util开头.
注意:我在一个程序(elisp)中调用zip,我不能或不想使用任何envirenment变量的概念.
这有可能与一些zip参数?
有没有办法使用cmd.exe将文件夹移动到垃圾箱?(Windows Vista)
(也就是说,行为应该与用户将文件夹从GUI移到垃圾箱相同)
有没有办法使用PowerShell?
什么是大多数或所有linux上都可用的"开放"命令?
例如在OS X中,我可以在shell中执行
打开.
并且文件夹显示在Finder(即桌面)中.同样,在Windows上命令是"探索".
我问,因为我想在emacs中使用跨平台命令.
(defun open-in-desktop ()
"Open the current file in desktop.
Works in Microsoft Windows and Mac OS X."
(interactive)
(cond
((string-equal system-type "windows-nt")
(w32-shell-execute "explore"
(replace-regexp-in-string "/" "\\" default-directory t t)))
((string-equal system-type "darwin") (shell-command "open ."))
) )
Run Code Online (Sandbox Code Playgroud)
有人建议使用xdg-open,但我不确定这是否仅适用于发行版或gnome/kde.(我不是linux用户)
这是一个奇怪的事.
在Windows Vista上的Cygwin bash上,我可以得到这样的日期:
$ date
2010-11-30 4:40:48 AM PST
xah@xah-PC ~
$ date +%s
1291120855
Run Code Online (Sandbox Code Playgroud)
但在emacs"shell"中,运行相同的日期命令,我得到这个:
c:\Users\xah\web\xahlee_org\comp>which date
which date
/usr/bin/date
c:\Users\xah\web\xahlee_org\comp>date
date
The current date is: 2010-11-30
Enter the new date: (yy-mm-dd)
c:\Users\xah\web\xahlee_org\comp>date +%s
date +%s
The system cannot accept the date entered.
Enter the new date: (yy-mm-dd)
Run Code Online (Sandbox Code Playgroud)
知道发生了什么事吗?
我有这个真正令人讨厌的问题.
总之,如果我使用,我会得到一个未找到的元素 (document.getElementsByTagName("p"))[0]
如果p标签在div这里面
<div id="main">
<p>see</p>
</div>
Run Code Online (Sandbox Code Playgroud)
但是一旦我删除了div包装器,所有的东西都能正常工作.
30分钟后,我把问题简化为这个简单的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ttttttttttttttttttttt</title>
</head>
<body>
<div id="main">
<p>see</p>
</div>
<script type="text/javascript">
var myobj = document.createElement("div");
myobj.innerHTML='yesyes';
document.body.insertBefore(myobj, (document.getElementsByTagName("p"))[0] );
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
把上面放在一个文件中.在Firefox或Chrome或IE8中打开.如果成功,你应该看到"是的".如果你删除<div id="main">包装,那么它的工作原理.
似乎有些东西我不理解getElementsByTagName?
看起来今天您不再需要在HTML链接或图像链接中按%20编码空格.例如,假设您在〔http://example.com/i/my house.jpg〕上有此图像.注意那里的空间.在你的html代码中,你可以这样做:
<img src="http://example.com/i/my house.jpg" alt="my house">
Run Code Online (Sandbox Code Playgroud)
它适用于所有当前版本的浏览器.但是,我不确定浏览器是否在请求URL之前对其进行编码,或者特定服务器是否会使用带空格的路径进行编码?(阿帕奇)
附录:对此感到抱歉.我真正的问题是关于HTTP协议.我会按原样留下这个并标记已回答.我在这里发了一个新问题. HTTP协议是否需要在文件路径中编码空间?
当我输入
kill -s ‹n› ‹pid›
Run Code Online (Sandbox Code Playgroud)
在终端,是调用bash builtin还是/ bin/kill?
对于这个问题,假设它是Ubuntu默认设置(bash).
在 HTTP 协议中,
例如,请求的第一行就像
GET /img/my house.jpg HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果文件名有空格,协议是否要求以某种方式对其进行编码?(如果协议不清楚,实际情况是什么?)
我正在尝试在现有节点之前和之后插入节点.问题是,它只会插入其中一个.奇.有谁能解释为什么?
这是代码
// create your new node <p>Hi</p>
var newNode = document.createElement("p");
newNode.appendChild(document.createTextNode("Hi"));
// a existing node for reference
var refNode = document.getElementById("xyz");
// insert newNode before refNode
refNode.parentNode.insertBefore(newNode, refNode);
// insert newNode after refNode
refNode.parentNode.insertBefore(newNode, refNode.nextSibling);
Run Code Online (Sandbox Code Playgroud)