小编jan*_*nce的帖子

Array.splice()的有趣行为

我正在试验jconsole中的splice()方法

a = [1,2,3,4,5,6,7,8,9,10]
1,2,3,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)

这里,a是1到10的简单数组.

b = ['a','b','c']
a,b,c
Run Code Online (Sandbox Code Playgroud)

这是b

a.splice(0, 2, b)
1,2
a
a,b,c,3,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)

当我将数组b传递给splice的第三个参数时,我的意思是"从索引零中删除a的前两个参数,并用b数组替换它们".我从来没有见过将数组作为splice()的第三个参数传递(我读过的所有指南页都讨论了一个参数列表),但是,好吧,它似乎可以做到这一点.[1,2]被删除,现在a是[a,b,c,3,4,5,6,7,8,9,10].然后我构建另一个数组,我称之为c:

c = ['one','two','three']
one,two,three
Run Code Online (Sandbox Code Playgroud)

并尝试做同样的事情:

a.splice(0, 2, c)
a,b,c,3
a
one,two,three,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)

这次,删除了4个(而不是2个)元素[a,b,c,3],并在开头添加了c数组.有人知道为什么吗?我确信这个解决方案很简单,但我现在还没办法解决.

javascript arrays array-splice

7
推荐指数
1
解决办法
633
查看次数

Github API和Access-Control-Allow-Origin

这可能是一个简单的(系列)问题,但我无法绕过它.

我正在尝试从我网站上托管的网络应用程序访问github api.这是代码简而言之:

<!DOCTYPE html>
<html>
<head>
  <style>p { color:red; }</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script>
  $(document).ready(function () {

$.ajax( {url :'https://api.github.com/repos/janesconference/kievIIPlugins/commits', dataType: "json", cache: false, success: function (data, textStatus, jqXHR)
        {
            var lastCommitSha = data[0].sha;
            $("p").text("Last commit SHA: " + lastCommitSha);
        }
    });
});
  </script>

</head>
<body>
  <p>Ajax request not (yet) executed.</p>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果我将浏览器指向我在Dropbox帐户上上传的这个简单页面,一切正常.相反,如果我将浏览器指向我网站上传的这个简单页面,我会得到臭名昭着的Access-Control-Allow-Origin例外:

XMLHttpRequest cannot load https://api.github.com/repos/janesconference/kievIIPlugins/commits?_=1360060011783. Origin http://bitterspring.net is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)

所以,问题:

  • 为什么它适用于Dropbox?
  • 据我所知,使用CORS它甚至可以在网站上运行.这是Access-Control-Allow-Origin: *.github.com我的Apache配置或类似的事情.但是,如引自en.wiki,

但是,这可能不适合担心安全问题的情况 …

ajax github github-api cors

6
推荐指数
1
解决办法
3840
查看次数

使用dropboxjs用oauth验证客户端2.服务器怎么样?

我是Oauth和服务器端的新手,所以请耐心等待我.

我有一个Web应用程序,使用dropbox-js对用户进行身份验证.一切都很简单.该应用程序使用dropbox-js' client.authenticate功能,如果用户通过身份验证,应用程序将自动重定向到初始页面,执行身份验证回调.从那一刻起,我知道我很高兴使用Dropbox进行身份验证,我可以使用应用程序的Dropbox目录.

我有一个目前什么也没做的公共node.js服务器.我想做的是:

  • 一旦客户端通过身份验证,请调用我的服务器并告诉它用户已通过身份验证
  • 如果服务器数据库上不存在该用户,则为其创建用户数据库的条目(我不需要详细说明来执行此操作).如果存在,则发回用户的关联数据.

我怎样才能以安全的方式做到这一点?我的意思是,服务器如何告诉用户是有效的Dropbox用户?服务器是否应该使用用户凭据向Dropbox进行身份验证?这些情况下的工作流程是什么?

oauth dropbox node.js oauth-2.0 dropbox-api

6
推荐指数
1
解决办法
2081
查看次数

html5输入模式属性不在表单外工作?

这个小提琴按预期工作 - 当用户输入无效的国家代码时会显示警告.

没有form元素的另一个小提琴不起作用.输入的pattern属性似乎需要form验证.顺便说一下,我正在做一个没有表单的复杂页面,我想用我的输入字段验证`pattern.有没有办法做到这一点?

html validation html5 user-input

6
推荐指数
1
解决办法
9159
查看次数

音乐模仿算法?

我对自动音乐制作感兴趣.我正在考虑一个程序,它提供了大量的1-bar琶音(=为了简单起见,固定长度的音符序列),并根据它学到的内容生成自己的序列.

首先,我知道我可以使用字母(digram?trigram?)频率分析,仅适用于音符音高,然后根据频率概率生成我的序列.

您是否知道更高级的算法,可能是为音乐序列明确教授的?

algorithm audio sequences

5
推荐指数
1
解决办法
1163
查看次数

使用边框查找HTML5 Canvas(click)事件的坐标

关于如何在Canvas元素上获取事件的坐标(相对于Canvas本身),这里有很多答案,在stackoverflow上.我使用以下解决方案(getEventPosition)并且它运行良好,除了我向画布添加边框时:

/**** This solution gives me an offset equal to the border size
 **** when the canvas has a border. Example:
 **** <canvas style='border: 10px solid black; background: #333;' id='gauge_canvas' width='500' height='500'></canvas>
 ****/

// Get DOM element position on page
this.getPosition = function(obj) {
    var x = 0, y = 0;
    if (obj.offsetParent) {
        do {
            x += obj.offsetLeft;
            y += obj.offsetTop;
            obj = obj.offsetParent;
        } while (obj);
    }
    return {'x': x, 'y': y};
};

// …
Run Code Online (Sandbox Code Playgroud)

javascript css html5 canvas javascript-events

5
推荐指数
1
解决办法
3057
查看次数

堆叠的画布元素,最上面的画布可防止事件到达其他画布

我得到了三个 HTML5 画布元素。一个是透明的,完全覆盖另外两个,不重叠(我在上面画的东西一定是叠加的,所以它的z-index一定是最高的)。

问题是最上面的一个 ( overlay_area) 阻止了其他两个接收事件。我不需要最上面的事件接收事件,所以

  • 有没有办法阻止最顶层的画布接收事件?
  • 如果没有,有没有办法将事件传递到底部画布?

对于这个项目,我需要使用hammer.js,而不是jquery。

<canvas id="overlay_area"
        style="z-index: 8; position:absolute; left:0px; top:35px;"
        height="762px" width="968px">
        This text is displayed if your browser does not support HTML5 Canvas.
        </canvas>

    <canvas id="wave_area"
        style="z-index: 5;
        position:absolute;
        left:0px;
        top:35px;"
        height="762px" width="200px">
        This text is displayed if your browser does not support HTML5 Canvas.
        </canvas>

    <canvas id="edit_area"
        style="z-index: 5;
        position:absolute;
        left:200px;
        top:35px;"
        height="762px" width="768px">
        This text is displayed if your browser does not support HTML5 Canvas.
    </canvas>
Run Code Online (Sandbox Code Playgroud)

html javascript canvas dom-events html5-canvas

5
推荐指数
1
解决办法
733
查看次数

在 Web Audio API 中使用离线上下文“转换”~264 个样本的信号

问题很简单。

如果我实例化 a OfflineAudioContext,创建一个 bufferSource,通过 Compressor 节点(或 Panner)运行它并等待.oncomplete事件,结果e.renderedBuffer包含处理过的源,仅向右移动了大约 264 个样本(根据我的经验证据)。

这意味着结果缓冲区的前 264 个样本为 0,最后一个样本被提前截断。结果缓冲区长度与源缓冲区相同。

这是一种已知的行为吗?

html javascript html5-audio web-audio-api

5
推荐指数
0
解决办法
254
查看次数

Firebase .info / connected离线时显示“已连接”

因此,我的网络应用程序中包含以下代码:

const connectedRef = firebase.database().ref('.info/connected')
connectedRef.on('value', function(snap) {
  if (snap.val() === true) {
    console.log('CONNECT')
    connected = true
  } else {
    console.log('DISCONNECT')
    connected = false
  }
})
Run Code Online (Sandbox Code Playgroud)

当我使用开发人员工具中的“离线”复选框脱机时,我希望看到一条DISCONNECT消息。我看到的是:

-- app starts

DISCONNECT
CONNECT

-- here I go "Offline"

DISCONNECT
CONNECT -- What ? 
Run Code Online (Sandbox Code Playgroud)

我不理解为什么我仍然离线时看到我的应用程序立即再次“连接”。虫子?还是我做错了什么?

firebase firebase-realtime-database

5
推荐指数
0
解决办法
308
查看次数

指令不在模板字符串中进行插值

我正试图有条件地建立一个模板.我得到了一个带有一些div和spans的k2plugin指令.根据pluginui属性,我想在模板的末尾插入另一个指令.我的代码,接下来,插入除pluginui之外的所有内容例如,最后一个div导致:

<div {{pluginui}} width='300' height='420'></div>
Run Code Online (Sandbox Code Playgroud)

{{pluginui}}是文字的,而它应该插值以触发另一个指令.有趣的是,如果我将{{pluginui}}放在同一行的其他位置(例如,在标签之间,它会进行插值.

我错了什么?

app.directive("k2plugin", function () {
            return {
                restrict: "A",
                scope: true,
                link: function (scope, elements, attrs) {
                    console.log ("creating plugin");

                    // this won't work immediatley. attribute pluginname will be undefined as soon as this is called.
                    scope.pluginname = "Loading...";
                    scope.pluginid = null;

                    // observe changes to interpolated attributes

                            // [...] observe name, id, width, height

                    attrs.$observe('pluginui', function(value) {
                        console.log('pluginui has changed value to ' + value);
                        scope.pluginui = attrs.pluginui + "viewport";
                    });

                },
                template: …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-scope

4
推荐指数
1
解决办法
5504
查看次数