我正在尝试创建一个类似于应用程序的控制台,所以我正在捕捉窗口上的所有按键并与它们做相关的事情(不重要).问题在于退格.我有以下代码:
$(window).bind("keypress",function(e){
var code = e.keyCode || e.which;
if ( code == 8) {
a = $("#console").html();
$("#console").html(a.substring(0,a.length-1));
currentCommand = currentCommand.substring(0,currentCommand.length-1);
e.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
但是,在Firefox中,该内容已#console被删除,但Chrome不会执行上述代码.我需要一个跨浏览器兼容的解决方案.我错过了什么?
加成:
如果我使用keydown/keyup而不是keypress,我无法检测characeter是'A'还是'a'它总是返回'A'.
我目前正在使用SoundCloud API,并希望在单击按钮时嵌入轨道.
我收到两个错误:
XMLHttpRequest无法加载http://soundcloud.com/oembed.json?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F48419073.Access-Control-Allow-Origin不允许使用null.
和
未捕获的TypeError:无法读取null的属性'html'
这是我的代码:
<button onclick="getPopular()">+1</button>
<div id="track"></div>
<script src="http://connect.soundcloud.com/sdk.js" type="text/JavaScript"></script>
<script type="text/JavaScript">
SC.initialize({
client_id: "**************",
});
var getPopular = function() {
SC.get("/tracks", {limit: 1}, function(tracks) {
var track = tracks[0];
alert("Latest track: " + track.title);
SC.oEmbed(track.uri, document.getElementById("track"));
});
};
</script>
Run Code Online (Sandbox Code Playgroud)
我在代码中使用警报让我知道它实际上是从SoundCloud API获取信息.我只是不确定还有什么阻止它嵌入.
提前谢谢,或者看看我的问题.
我正在为我的作业编写代码,我对编写多线程应用程序并不熟悉.我学会了如何打开一个线程并启动它.我最好显示代码.
for (int i = 0; i < a.length; i++) {
download(host, port, a[i]);
scan.next();
}
Run Code Online (Sandbox Code Playgroud)
我上面的代码连接到服务器打开a.length多个并行请求.换句话说,下载打开a[i]连接以在每次迭代时获得相同的内容.但是,当下载已打开的线程完成时,我希望我的服务器在i = 0启动下一次迭代i = 1时完成下载方法.我使用scan.next()来手动停止它,但显然它不是一个很好的解决方案.我怎样才能做到这一点?
编辑:
public static long download(String host, int port) {
new java.io.File("Folder_" + N).mkdir();
N--;
int totalLength = length(host, port);
long result = 0;
ArrayList<HTTPThread> list = new ArrayList<HTTPThread>();
for (int i = 0; i < totalLength; i = i + N + 1) {
HTTPThread t;
if (i + N > …Run Code Online (Sandbox Code Playgroud) 我有一个main.go和mypkg/...go.我使用go build -o main main.go或者go install <pkg that has main.go>有一些我需要的标志.但我也看到了测试标志.为什么会这样?我错过了什么?
Usage of ./main:
-docker string
Docker API Path, defaults to local (default "unix:///var/run/docker.sock")
-httptest.serve string
if non-empty, httptest.NewServer serves on this address and blocks
-port int
The default port to listen (default 8000)
-test.bench string
regular expression per path component to select benchmarks to run
-test.benchmem
print memory allocations for benchmarks
-test.benchtime duration
approximate run time for each benchmark (default 1s)
-test.blockprofile …Run Code Online (Sandbox Code Playgroud) 你怎么能告诉一个正常的人(即你的妈妈,大妈妈,你的小弟弟)第一个程序是如何写的?他们经常提出这个问题,我真的无法给出他们能理解的答案.
我想创建一个函数指针数组,并能够在for循环中调用它们.我怎样才能做到这一点?我试过了:
void (**a) (int);
a[0] = &my_func1;
a[1] = &my_func2;
a[2] = &my_func3;
for ( i = 0; i < 3; i++){
a[0]();
(*a[0])(); // Neither does work
}
Run Code Online (Sandbox Code Playgroud)
但我想我错过了一些语法:
error: too few arguments to function ‘*(a + (long unsigned int)((long unsigned int)i * 8ul))’
Run Code Online (Sandbox Code Playgroud) 是否可以在 /dev/tty1 上运行脚本并生成一个在 /dev/tty2 上运行的程序并等待它完成并运行脚本中的其他命令?例如:
echo "Hello, this is from terminal 1"
chvt 2
sh myprogram.sh (I want it to run on tty2, but it runs on tty1)
chvt 1
Run Code Online (Sandbox Code Playgroud)
myprogram.sh:
echo "Hello' this is from terminal 2, please type your input:"
read A
exit A
Run Code Online (Sandbox Code Playgroud) 我创建了一个简单的NodeJS TCP服务器,Java Client发送一个映像:
encodedImage = <a base64 encoded image>
out.write("IMG;" + encodedImage);
out.flush();
Run Code Online (Sandbox Code Playgroud)
我的NodeJS服务器如下:
net.createServer(function(TCPSocket){
TCPSocket.on("data", function(data){
console.log("TCP Recieved: " + data.length);
});
}).listen(5000);
Run Code Online (Sandbox Code Playgroud)
但是,即使我发送所有数据并立即刷新它,输出如下:
TCP Recieved: 13
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1472
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
TCP Recieved: 1344
Run Code Online (Sandbox Code Playgroud)
我想让它在一个简单的块中接收它,但我认为它是由于NodeJS的事件处理机制而发生的,对于作为单个块发送的数据实现单块数据的最佳方法是什么?据我所知,TCP窗口可能比1344字节的数据大得多.我想过将标头值用作HTTP,所以我知道ad的长度构造了我想要的对象.
我正在开发一个扩展,我不想使用选项页面.我使用浏览器操作(图标显示在右上角),并通过该页面创建一些首选项,然后将它们存储在localStorage中.
但是,我的内容脚本需要读取localStorage,但我知道它无法访问它.我看着传递的信息,但无法实现我想要的.
在这里我尝试过:
popup.js
$(document).ready(function(){
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getList")
sendResponse({status: localStorage['list']});
else
sendResponse({}); // snub them.
});
});
Run Code Online (Sandbox Code Playgroud)
content.js
$(document).ready(function(){
var p;
chrome.extension.sendRequest({method: "getList"}, function(response) {
p = response.status;
alert(response.status);
});
});
Run Code Online (Sandbox Code Playgroud) 如您所知,HTML 5提供了一个很好的FileAPI.我已经构建了一个系统,用户收到Base64编码的字符串,需要写在磁盘上(具有适当的权限,因为它是谷歌Chrome应用程序).我的代码如下:(有点清除不必要的东西)
function onInitFs(fs){
fs.root.getFile(fileName, {create: true}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
var bb = new window.WebKitBlobBuilder();
bb.append( atob(dataInBase64Format));
fileWriter.write(bb.getBlob());
}, errorHandler);
console.log( fileEntry.toURL());
}, errorHandler);
}
Run Code Online (Sandbox Code Playgroud)
但是,我的原始文件大小为:6302446字节,服务器以8403264字节的形式将它们作为Base64发送,但保存的文件为9242715字节.当然我明白了什么是错的,我查看了文件,它只是一个很好的字符串.没有花哨的字符出现.我假设我在文本模式下写,atob只是将它转换为另一个字符串; 我需要转换为二进制格式(在一个数组中?)并强制我的fileWriter以二进制模式而不是文本模式写入.我在网上搜索过,但找不到解决方案.我在StackOverflow上发现了这个问题谷歌Chrome Base64方法是否能够处理来自File API的二进制数据?但它没有帮助我.
如何将我的Base64字符串转换为正确的数据结构并让我的fileWriter写入它?