小编Mar*_*ans的帖子

以*字符*指定宽度

使用固定宽度字体时,我想以字符指定HTML元素的宽度.

"em"单位应该是M字符的宽度,所以我应该能够用它来指定宽度.这是一个例子:

<html>
  <head>
    <style>
      div {
        font-family: Courier;
        width: 10em;
      }
    </style>
  </head>
  <body>
    <div>
      1 3 5 7 9 1 3 5 7 9 1
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

结果不是我想要的,因为第15列后的浏览器行中断,而不是10:

1 3 5 7 9 1 3 5
7 9 1
Run Code Online (Sandbox Code Playgroud)

(在Ubuntu中都有Firefox和Chromium的结果.)

维基百科的文章说,"em"并不总是M的宽度,所以看起来"em"单位看起来不可信任.

css font-size

101
推荐指数
2
解决办法
6万
查看次数

AngularJS指令属性中的非字符串类型

我想创建一个属性窗格,其中属性的数量可以根据选择的对象而变化.

我已经通过自己的指令创建了property一个名称,它显示了属性的名称和值,使用如下代码:

<div ng-app="MyApp">
  <div class="properties-pane" ng-controller="PropertiesPane">
    <div ng-repeat="property in properties">
      <property name="{{property.name}}" value="{{property.value}}">
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

简单,不是吗?这很好用,除了property.value它将转换为字符串(因为它是DOM元素的属性).如果属性值是其他数据类型,我该怎么办?例如一个对象.请参阅实现的其余部分(在Coffeescript中):

MyApp = angular.module('MyApp', [])

MyApp.controller 'PropertiesPane', ($scope) ->
  $scope.properties = [
    # Note that value is an object, not a string:
    {name: 'First', value: {x:0, y:0, z:42}},
    {name: 'Second', value: {x:0, y:20, z:0}},
    {name: 'Third', value: {x:1, y:1, z:1}},
  ]

MyApp.directive 'property', ($compile) ->
  restrict: 'E'
  transclude: false
  replace: true
  scope: {name: '@name', value: '@value'}
  template: '<div>{{name}} {{value.x}}, …
Run Code Online (Sandbox Code Playgroud)

angularjs

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

Javascript可以判断页面是否是GET或POST的结果?

可能重复:
HTTP请求方法的客户端检测

我正在处理在任何页面上注入的Javascript.脚本注入我无法控制的服务器上.(使用附加组件或书签来完成注入.)

Javascript需要知道页面是否是作为HTTP GET或POST的结果加载的.这样做的原因是,如果页面加载了GET,则URL是页面的标识符,可以加入书签,与他人共享等.如果是POST,我需要以不同的方式处理它.

可以这样做吗?我发现无法从Javascript访问请求,但也许有一些我不知道的技巧.

javascript post http

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

在JavaScript中访问原始全局变量和属性

我正在研究注入网页的代码(使用浏览器插件或脚本标签).

问题是,我们要使用全局对象和变量,如JSON,window.location,String.split,等,以及这些的实现可能已经被网页更改.这可能会使我们的代码失败,这是一个安全问题.

例:

>>> String.prototype.split = function() { return 'foo'; };
function()
>>> 'a,b,c'.split(',');  // gives unexpected result
"foo"
Run Code Online (Sandbox Code Playgroud)

那么,是否有办法访问浏览器的默认实现对象和函数,就像它们被更改之前一样?它不一定是标准的,我只是希望功能存在.

javascript security global-variables

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

让编译器为 std::function 生成一个空的默认函数

在这段代码中,我想...用一种不冗长的方式来表达“带有匹配参数的空函数”:

std::function<void(int foo, float bar)> somefunc  = ...;
Run Code Online (Sandbox Code Playgroud)

我希望它生成与此相对应的代码,但不重复参数类型:

std::function<void(int foo, float bar)> somefunc  = [](int, float) {};
Run Code Online (Sandbox Code Playgroud)

背景

std::function我可以这样声明和初始化:

std::function<void(int foo, float bar)> somefunc;
Run Code Online (Sandbox Code Playgroud)

然后我可以这样称呼它:

if(somefunc) {
    somefunc(42, 4711.0f);
}
Run Code Online (Sandbox Code Playgroud)

但是 if 语句使代码变得臃肿(而且我不太喜欢空指针),因此我可以使用默认的空实现来定义该函数:

std::function<void(int foo, float bar)> somefunc  = [](int, float) {};
Run Code Online (Sandbox Code Playgroud)

然后调用将很简单:

somefunc(42, 4711.0f);
Run Code Online (Sandbox Code Playgroud)

但是重复这样的参数会有点重复,所以我想要一些能够生成空实现的东西。

c++

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

标签 统计

javascript ×2

angularjs ×1

c++ ×1

css ×1

font-size ×1

global-variables ×1

http ×1

post ×1

security ×1