小编Dan*_*nce的帖子

我怎样才能在一个可疑的div中得到插入符号?

当我点击鼠标时,我试图从该位置的内容可编辑div中提取单个单词.例如:

Lorem ipsum dolor sit amet, cons|ectetur adipiscing elit. Cras vestibulum gravida
tincidunt. Proin justo dolor, iaculis vulputate eleifend et, facilisis eu erat.*
Run Code Online (Sandbox Code Playgroud)

使用| 代表插入符号,函数应返回" consectetur ".

我的尝试:

window.onload = function () {
        document.getElementById("text-editor").onclick = function () {
            var caretPos = 0, containerEl = null, sel, range;
            if (window.getSelection) {
                sel = window.getSelection();
                if (sel.rangeCount) {
                    range = sel.getRangeAt(0);
                    if (range.commonAncestorContainer.parentNode == this) {
                        caretPos = range.endOffset;
                    }
                }
            } else if (document.selection && document.selection.createRange) {
                range = document.selection.createRange(); …
Run Code Online (Sandbox Code Playgroud)

html javascript string

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

使用webpack和babel与父项目目录中的文件

我有一个项目设立这样,我想需要file-a.jsfile-b.js.

project-name/
  node_modules/
  src/
    file-a.js
  tools/
    tool-name/
      node_modules/
      src/
        file-b.js
      webpack.config.js
      package.json
  package.json
Run Code Online (Sandbox Code Playgroud)

我的webpack1.13.0配置正常工作,直到我babel-loaderbabel-preset-es20156.6.0 添加6.2.4 .然后我开始收到错误消息.

/home/dan/dev/dan/project-name/src/file-a.js中的错误模块构建失败:错误:无法找到相对于目录"/ home/dan/dev/dan/project的预设"es2015" -name/src目录"

现在我有预感到这种情况正在发生,因为它正在寻找babel-preset-es2015上层package.json.我可以通过在该级别安装它来消除此错误,但随后我收到关于babel模块不存在的类似消息.

我已经尝试了各种各样的东西,将上层src目录符号链接到内部项目中,使用resolve.rootresolve.alias尝试手动解析没有嵌套路径的文件夹.用于context将项目根目录设置为外部文件夹,但它仍然选错了node_modules.

如何强制webpack使用正确的node_modules文件夹?

javascript webpack babeljs

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

这个CSS菜单是如何创建的?

我一直在寻找创建一个圆形菜单,到目前为止,我可以使用Javascript进行循环定位,但仍然有兴趣实现一个纯CSS替代品.

在我的研究中,我发现了这个菜单:http://www.cssplay.co.uk/menus/cssplay-round-and-round.html.

因此,通过为每个列表项提供一个带索引(p1,p2,p3 ...)的类来完成该菜单,然后子圈子项具有类(s1,s2,s3 ......).然后这些项目是-webkit-从他们的班级转换到位.

有没有办法做到这一点,而无需将clases硬编码到元素上,并为每种类型写出CSS规则?如果没有,用JS做到这一点的最佳方法是什么?


到目前为止我有什么

通过使用Javascript绝对定位元素,我已经达到了预期的效果,但是我对这种解决方案并不感兴趣.代码如下:

var circles = document.getElementsByClassName('circle');
var radius = circles.style.height / 2;

for(var i = 0; i < circles.length; i++) {
    var items = circles.children;
    for(var i = 0; i < items.length) {
        items.style.left = 0 + cos((i / items.length) * 360) * radius;
        items.style.top = 0 + cos((i / items.length) * 360) * radius;
    }
}
Run Code Online (Sandbox Code Playgroud)

由于style.width返回的对象性质,实际代码有点复杂,但作为一个例子,这应该给你一些东西.

html javascript css css3

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

$ scope.$ apply()有什么作用?

$scope.$apply()当我通过Angular应用程序中的websockets接收数据时,我一直在使用更新模型的绑定,并且它可以工作.但它实际上做了什么,为什么需要调用它来实现更新?

javascript angularjs

5
推荐指数
2
解决办法
2910
查看次数

从接口泛型中键入推断

我有一个接口,它接受两个显式的通用参数:

interface ConnectedComponent<TSelectors, TActions> {
  selectors: TSelectors;
  actions: TActions;
  (props: SelectorProps<TSelectors> & ActionProps<TActions>): any;
}
Run Code Online (Sandbox Code Playgroud)

以下是我使用它的方式:

let selectors = { ... };
let actions = { ... };

let Counter: ConnectedComponent<typeof selectors, typeof actions> = props => { ... };
Counter.selectors = selectors;
Counter.actions = actions;
Run Code Online (Sandbox Code Playgroud)

我更喜欢做的是从指定的属性推断出泛型:

let Counter: ConnectedComponent = { ... };
Counter.selectors = { ... };
Counter.actions = { ... };
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何捕获typeof Counter.selectorstypeof Counter.actions界面内部.

generics type-inference typescript

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

typescript 导出类型和模块值

我想导出与值同名的类型。这是一个示例模块:

// foo.ts

export type Foo = string;

export function create(): Foo {
  // ...
}
Run Code Online (Sandbox Code Playgroud)

这种模式起作用的原因是什么:

// index.ts
import * as _Foo from "./foo";
export const Foo = _Foo;
export type Foo = _Foo.Foo;
Run Code Online (Sandbox Code Playgroud)

但这些图案没有吗?

// No compiler error but value is not exported
export type Foo = import("./foo").Foo;
export * as Foo from "./foo";

// Duplicate identifier error
import type { Foo } from "./foo";
import * as Foo from "./foo";
export { Foo };

// Individual declarations …
Run Code Online (Sandbox Code Playgroud)

typescript es6-modules

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

使用Nodejs中的Google API进行服务身份验证

我正在尝试将YouTube Data API V3与Node一起使用,以尝试提供经过身份验证的代理,以进行视频搜索.由于服务将在服务器上运行,我已经创建了一个服务帐户.

这导致下载密钥文件和以下信息:

我对JWT有一个非常基本的了解,但OAuth2页面上的服务部分建议你应该使用他们的一个库来完成它,而不是自己实现它.但是,它们不会在其支持的库中列出节点.

稍微挖掘一下,我遇到了Google API Nodejs客户端:https://github.com/google/google-api-nodejs-client,声称得到了Google的支持,并且开箱即用,支持OAuth2.

文档相当小,身份验证的示例包括将URL打印到终端,然后在浏览器中访问它以生成令牌.我对源代码进行了挖掘,看它是否支持JWT,并且看起来确实内置了JWTClient.

/**
 * @constructor
 * JWT service account credentials.
 *
 * Retrieve access token using gapitoken.
 *
 * @param {string=} email service account email address.
 * @param {string=} keyFile path to private key file.
 * @param {array=} scopes list of requested scopes.
 * @param {string=} subject impersonated account's email address.
 *
 */
function JWT(email, keyFile, key, scopes, …
Run Code Online (Sandbox Code Playgroud)

authentication api google-api node.js jwt

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

JSF标记未呈现

我正在启动一个JSF项目(这是我第一次使用JSF)并且我在渲染标记方面遇到了问题.我正在Eclipse中开发并使用TomCat作为服务器.

我正在使用此url访问该文件:http://localhost:8080/DeutschAkademie/login.jsp并且据我所知,<h:form>标记应该呈现为<form>,但相反它呈现为<h:form>.有任何想法吗?

java jsf web-applications jsf-2

3
推荐指数
1
解决办法
1万
查看次数

Prototypal Inheritance:为什么false不等于false?

我快速起草了一个小助手方法,使未定义的变量检查更容易一些.

Object.prototype.is = function() {
   for(var i in arguments) {
       if(this === arguments[i]) {
           return true;
       }
   }
   return false;
};
Run Code Online (Sandbox Code Playgroud)

设计使用如下:foo.is(undefined, false)检查foo是否未定义或错误.我使用的测试用例是:

var a = false;
a.is(false);
> false
Run Code Online (Sandbox Code Playgroud)

有点困惑,我多玩了一下.一些console.logging显示相等检查失败,因为被比较的两个对象不一样.

Boolean {is: function} === false
> false
Run Code Online (Sandbox Code Playgroud)

所以,从它的曾祖父a继承了这个is方法:Object.prototype但是false比较中没有.

我想我可以通过使用来强制继承new Boolean(false),这肯定会创建一个对象的新实例(希望避免在对象的原型被扩展之前创建的对象的引用可能发生的任何风险).结果:

Boolean {is: function} === Boolean {is: function}
> false
Run Code Online (Sandbox Code Playgroud)

为什么平等检查失败?

作为解决这里发生的事情的过程的一部分,我在使用单个布尔值作为参数调用函数之后检查了arguments数组,只发现它的长度为2,额外的参数是is函数在Object.prototype中声明.

a.is(false);
arguments -> [false, is: function]
Run Code Online (Sandbox Code Playgroud)

那是怎么结束的?

作为参考,我知道像这样的猴子修补是一个坏主意!这不是生产代码,我只是感兴趣.

javascript inheritance prototype

3
推荐指数
1
解决办法
94
查看次数

范围如何在Io中起作用?

我不太确定Io中的变量范围是如何工作的.该文件说有倒闭,但我似乎并没有能够看到idx来自内部nextprev方法.父级可见性是关闭的关键前提,那么它们如何工作?

List iterator := method(
    idx := 0

    itr := Object clone
    itr next := method(
        idx = idx + 1
        return self at(idx)
    )

    itr prev := method(
        idx = idx - 1
        return self at(idx)
    ) 

    return itr
)
Run Code Online (Sandbox Code Playgroud)

应该如何实现?

closures scope iolanguage

3
推荐指数
1
解决办法
125
查看次数