具体来说,我有一个PHP命令行脚本,在某一点上需要用户输入.我希望能够执行外部编辑器(例如vi),并等待编辑器在恢复脚本之前完成执行.
我的基本想法是使用临时文件进行编辑,然后检索文件的内容.有点像:
$filename = '/tmp/script_' . time() . '.tmp';
get_user_input ($filename);
$input = file_get_contents ($filename);
unlink ($filename);
Run Code Online (Sandbox Code Playgroud)
我怀疑这是不可能从PHP命令行脚本,但我希望有一些shell脚本技巧可用于实现相同的效果.
关于如何在其他脚本语言中实现这一点的建议也非常受欢迎.
任何人都可以通过很好的例子向我解释可插拔适配器的概念吗?
我刚刚开始使用jquery,我真的很喜欢使用选择器.在我看来,成语将是一种非常好的遍历对象树的方法(例如,JSON查询结果).例如,如果我有这样的对象:
var obj = { 'foo': 1, 'bar': 2,
'child': { 'baz': [3, 4, 5] }
};
Run Code Online (Sandbox Code Playgroud)
我希望能够写出像$('child baz:last',obj)这样的东西并得到5.我认识到链接不起作用,但我仍然喜欢选择算子.任何人都知道这样的野兽是否存在,或者写一个最简单的方法是什么?
我有一个像这样的ExtJS按钮:
new Ext.SplitButton({
text: 'Index',
iconCls: 'index',
scale: 'large',
iconAlign: 'left',
cls: 'header-item',
handler: leftPanelNav, // handle a click on the button itself
menu: new Ext.menu.Menu({
items: [
// these items will render as dropdown
// menu items when the arrow is clicked:
{text: 'Item 1'},
{text: 'Item 2'}
]
})
})
Run Code Online (Sandbox Code Playgroud)
他的状态将被压缩,我想知道如果我想从脚本中取消它,我怎么能解压它.
谢谢.
附加jQuery.ajaxError
或jQuery.ajaxComplete
似乎不接收任何有关提取失败是否是超时结果的信息的全局Ajax事件处理程序.有关如何检测超时的任何指示?检查status
jqXHR对象的属性是否为0是一个可靠的方法吗?
期望的行为:
用户将项目拖动到树上.将鼠标悬停在一个封闭的节点上时,该节点将展开显示子节点.此时,用户可以继续拖动到子节点并放下它们中的任何节点.
这工作正常.我使用droppables的"over"选项来扩展节点并使子节点可以删除.
但我需要添加更多功能.首先,我为draggables添加了一个帮助器.仍然工作正常.然后我将draggables和droppables放入两个不同的容器(div).此时,帮助程序不会拖出容器.解决方案是在draggables上设置"appendTo:'body'".好的......好吧,不是很好.
现在,子节点在当前拖动操作期间不可删除.用户必须释放当前拖动并重新划分到所需的子节点.如果我删除appendTo选项,问题就会消失,但是帮助程序不会在视觉上移动到droppable容器中.
有什么方法可以"唤醒"这些新的droppables,使它们立即可以放弃?
我试图在onclick事件处理函数中获取一个对象.
但它并没有像我期望的那样发挥作用.
例如,如果我运行此代码:
var entries = [{id: 1},{id: 2},{id: 3}];
for (var i = 0; i < entries.length; i++) {
var entry = entries[i];
document.getElementById(entry.id).onclick = function () {
console.log("this.id: " + this.id);
console.log("entry.id: " + entry.id);
};
}
Run Code Online (Sandbox Code Playgroud)
我的期望是:
this.id: 1
entry.id: 1
this.id: 2
entry.id: 2
this.id: 3
entry.id: 3
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
this.id: 1
entry.id: 3
this.id: 2
entry.id: 3
this.id: 3
entry.id: 3
Run Code Online (Sandbox Code Playgroud)
为什么条目对象始终是id为3的条目?
如何在click事件处理程序中获取正确的条目对象?
有许多关于Devise的帖子以及缺乏"current_user"用于模型的可用性.在这里和其他地方发布了大量的工作.但是,我没有在任何帖子中找到"为什么"的答案.这是安全问题吗?如果没有,为什么?
有些情况下我必须在新窗口/选项卡中打开链接.有没有一种方法可以对严格的HTML有效?使用jQuery这样做是可以接受的,但我宁愿不只是将它隐藏target="_blank"
在w/jQuery中,以便验证器不会看到它们.
我们使用exec-maven-plugin在Node.js下运行RequireJS的优化器(r.js)(因为它比Rhino快得多):
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>compile-js</id>
<phase>prepare-package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${node.executable}</executable>
<arguments>
<argument>${project.build.directory}/dependency/requirejs/r.js</argument>
<argument>-o</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
问题是,只要编译过程中出现任何问题,r.js应该脱口而出的错误消息就不会显示在Maven的控制台输出中.我要解决的问题是,我使用-X标志重新运行Maven命令以获取调试输出,以便exec-maven-plugin输出正在执行的实际命令.它是这样的:
project-root/target/dependency/node/node \ project-root/target/dependency/requirejs/r.js \ -o src/main/webapp/app.build.json
当我从命令行手动运行命令时,然后我在控制台中获取实际的编译错误,然后继续修复它们.
我已经尝试将stderr重定向到stdout而2>&1
无效(在Windows上),因为我无法立即找到一种方法来制作像重定向位一样的exec-maven-plugin作为参数.我没有太过追求那条路线,因为这只是一个疯狂的猜测,这是一个stderr/stdout问题 - 它可能是,但我只是在猜测.
关于可能发生的事情的任何指示,或者我可以采取进一步诊断步骤的任何建议?请记住,在这个问题中有多个移动部件:Maven,exec-maven-plugin,Node.js,r.js和一个疲惫的脑袋.
PS我正在考虑将requirejs-maven-plugin作为最后的手段,因为项目时间表不允许我现在对POM进行彻底的改造.我正试着看看我能用当前的设置做些什么.