小编JS_*_*ler的帖子

何时(以及为什么)在JavaScript控制台中未定义?

在FF和Chrome的控制台中,{}在被明确评估之前被视为未定义:

{};     // undefined
({});   // ? Object
Run Code Online (Sandbox Code Playgroud)

实际上,它的定义不如未定义 - 它显然是错误的语法:

{} === undefined;  // SyntaxError: Unexpected token ===
{}.constructor;    // SyntaxError: Unexpected token .
Run Code Online (Sandbox Code Playgroud)

但不是如果它在另一边,在这种情况下它是好的:

"[object Object]" == {}.toString(); // true
Run Code Online (Sandbox Code Playgroud)

或者,如果它不是第一个表达式:

undefined + undefined; // NaN
{} + undefined;        // NaN
undefined + {};        // "undefined[object Object]"
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?

javascript console

9
推荐指数
2
解决办法
637
查看次数

CSRF - 伪造的POST可以包含任意数据吗?

伪造的POST请求可以由不受信任的网站构建,方法是创建表单并将其发布到目标站点.但是,此POST的原始内容将由浏览器编码为以下格式:

param1=value1&param2=value2
Run Code Online (Sandbox Code Playgroud)

是否有可能不受信任的网站构造包含任意原始内容的伪造POST - 例如字符串化JSON?

{param1: value1, param2: value2}
Run Code Online (Sandbox Code Playgroud)

换句话说: 网站可以使浏览器将任意内容发布到第三方域吗?

javascript security post csrf

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

PostgreSQL - RETURNING INTO数组

我想将更新的RETURNING值存储到数据结构中,以便我可以在后续查询中使用它.

在这个例子中,我给出了一个"parent_ids"列表,我想找到父节点在该数组中的所有子节点.然后,我希望更新它们的一些价值,并做其他的事情.

CREATE OR REPLACE FUNCTION plpgsql_is_really_great(parent_ids bigint[])
  RETURNS void AS
$$
DECLARE
    found_ids bigint[];
BEGIN    
    UPDATE child SET
        foo = bar
    FROM 
        (SELECT id
            FROM child
            WHERE parent_id=ANY(parent_ids)
        ) as children_ids
    WHERE
        child.id = children_ids.id
    RETURNING children_ids.id INTO found_ids;  -- ???

    -- do more stuff with found_ids
$$ LANGUAGE plpgsql
Run Code Online (Sandbox Code Playgroud)

postgresql function plpgsql sql-returning

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

NodeJS与promise.catch和console.log有关?

运行以下代码时,我会得到不同的结果,具体取决于我是否console.log("fnError: ", fnError)注释掉了.这对我来说似乎很不对劲.

世界上如何呼吁console.log影响我的承诺?

function run() {
    var fn = function(){
        throw new Error("incorrect message");
    };

    // returns a promise that should fail with
    // an error object whose .message is "correct message"
    var promisifiedFn = function(){
        return Promise.resolve()
            .then(fn)
            .catch((fnError) => {
                // commenting this out fixes things! //
                console.log("fnError: ", fnError);
                ///////////////////////////////////////

                fnError.message = "correct message";
                throw fnError;
            })
    }

    promisifiedFn().catch((e) => {
        console.log("caught error.message:", e.message);
        console.log("caught error:", e);
    });
}
run();
Run Code Online (Sandbox Code Playgroud)

以上产生:

// …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise console.log

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

SVG fill="url(#)" 的问题

我正在动态创建几个具有相同结构的 SVG。

我遇到的问题是我必须通过它们的 ID 引用渐变,因此当有多个 SVG 时,ID 会发生冲突并导致意外结果。有没有办法通过 ID 引用其他 SVG 元素?我可以将选择限制在 SVG 元素内吗?


第一部分

在一个简单的例子中,我有两个具有相同结构的 SVG——它们将由一些 javascript 动态创建。问题:请注意,第二个 SVG 使用第一个的渐变:

<div>
  This is the first SVG, it defines "#Gradient" as red-black.
  <br>
  <svg viewBox="0 0 10 10" width="50" height="50" style="border: 1px solid black;">
    <defs>
      <linearGradient id="Gradient" x1="0%" x2="0%" y1="0%" y2="100%">
        <stop offset="0%" stop-color="red"/>
        <stop offset="100%" stop-color="black"/>
      </linearGradient>
    </defs>
    <circle cx="5" cy="5" r="5" fill="url('#Gradient')" />
  </svg>
</div>
    
<div>
  This is the second SVG. It ends up displaying a …
Run Code Online (Sandbox Code Playgroud)

svg linear-gradients

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

使用 MutationObserver 检测节点何时添加到文档

我想在创建特定 DOMNode 的上下文中检测何时将特定 DOMNode 添加到文档中。

这是我到目前为止所拥有的:

function getThingThatFormatsItself() {
    const MY_NODE = createNode();

    const observer = new MutationObserver(function (records) {
        records.forEach(record => {
            record.addedNodes.forEach(n => {
                if (n === MY_NODE) {
                    observer.disconnect();
                    doFormatting();
                }
            });
        })
    });
    observer.observe(document, {childList: true, subtree: true});

    // do formatting stuff that relies on the element being in DOM
    function doFormatting() {
        console.log(`It's been added.`);
    }

    return MY_NODE;
}

/* ELSEWHERE IN MY CODE */

// Now that Thing is added to DOM, it can …
Run Code Online (Sandbox Code Playgroud)

javascript dom mutation-observers

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

绝对 div 是否可以具有 width: auto,并且还忽略它的父级宽度?

我正在尝试制作一个div拉伸以适合其内容的拉伸,直到达到某个最大宽度,之后内容应该换行。

使用绝对定位div可以很好地工作——除非其父级的宽度受到限制。当其父级的宽度受到限制时,绝对定位的div行为就像其父级的max-width宽度一样。width

我本质上希望绝对定位div“假装”其父级具有 100% 宽度,并给我良好的“拉伸以适应”行为,同时尊重我对其max-width设置的设置。

在下面的示例中,我希望第一个.abs能够工作,即使它是“瘦”div 的子级。

.parent {
  position: relative;
  background: #EEE;
  width: 100px;
}
.abs {
  position: absolute;
  max-width: 200px;
  /* width:  auto, but ignore parent! */
}

.parent2 {
  margin-top: 150px;
  background: rgba(0,128,0,.1);
  width: 100px;
}
Run Code Online (Sandbox Code Playgroud)
  <div class="parent">
    <div>
      Doesn't work.
    </div>
    <div class="abs">
      This wraps after 100px, because it's parent has 100px width.
    </div>
  </div>
  
  <div class="parent2">
    <div>
      Does work.
    </div> …
Run Code Online (Sandbox Code Playgroud)

css css-position width

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

ComboBox.SelectedValue不起作用

这段代码有什么问题?

myComboBox.Items.Clear();
myComboBox.Items.AddRange(new string[]{"one","two"});
myComboBox.SelectedValue = "one";
Run Code Online (Sandbox Code Playgroud)

它显示没有选择任何东西.

c# combobox winforms

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

如何防止DIV宽度扩大?

我该如何预防div宽度扩大?

我想.dont-expand假装这width: 100%;意味着“100%,但不包括我自己”。基本上,计算width: 100%;(忽略自身),并以像素为单位设置宽度width: Npx;——在 CSS 而不是 JS 中。

.outer {
  position: absolute;
  border: 1px solid black;
}

/* This element sets the width of the container */
.has-width {
  width: 300px;
  margin-top: 10px;
  background: rgba(0,128,0,.2);
  border-right: 2px solid green;
  color: #888;
}

.dont-expand {
  /* width: ??? */
  
  /* This would be nice       */
  /* expand: false;           */
  
  /* Or this                  */
  /* width: toPx(100%);       */
  
  /* Or this …
Run Code Online (Sandbox Code Playgroud)

html css width

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