小编WBT*_*WBT的帖子

用户脚本中@include和@match有什么区别?

元数据块上GreaseSpot页面说两者非常相似,但@match"对*字符的含义设置了更严格的规则".然后GreaseSpot继续教授使用@include,但像这样的 Chrome示例通常似乎使用@match并表明@include仅支持兼容性目的; @match是优选的.

显然,@include google.*可以在google.evil.com上运行而@match google.*不能.
这个例子不足以真正看出通配符在这两者之间的表现如何不同,并且在这里的答案中寻求更好的解释.

@include默认情况下使用新的GreaseMonkey脚本(Firefox),而默认使用新的TamperMonkey脚本(例如Chrome)@match.

这两者之间到底有什么区别?

例如,每个人如何处理通配符?
跨浏览器兼容性有差异吗?
有人选择使用一个而不是另一个的原因是什么?

javascript greasemonkey userscripts tampermonkey

30
推荐指数
2
解决办法
7467
查看次数

Git 每次都会询问 SSH 密码,而 SSH 从代理获取密码

我在 Windows 10 Pro 机器上尝试执行 git pull,而不必每次都输入我的 SSH 密码。已生成带有密码的密钥对,并且公钥已成功添加到我的 GitLab 帐户。

在“服务”GUI 中,我可以看到“OpenSSH 身份验证代理”正在运行,如果在 PowerShell 中,我会Get-Service ssh-agent看到以下内容,确认相同的信息:

Status   Name               DisplayName
------   ----               -----------
Running  ssh-agent          OpenSSH Authentication Agent
Run Code Online (Sandbox Code Playgroud)

当我这样做时,ssh -T git@gitlab.com我收到“欢迎来到 Gitlab”消息,表明ssh 连接成功,无需输入密码。

我正在运行 ssh 代理并添加身份(通过运行svn add、输入我的密码并获取成功消息)。在同一终端中运行“ssh -T git@gitlab.com”会成功,无需密码。

在终端中,我可以运行 git 命令(例如git pushgit pull),每次都会提示我输入密码,并且操作成功。

在 Visual Studio Code 中,当我单击 GUI 按钮与源同步时,出现错误git@gitlab.com: Permission denied (publickey,keyboard-interactive). 在此输入图像描述
这可能是因为它没有提示输入密码,而需要输入密码。当我单击“打开 Git 日志”或“显示命令输出”时,我可以看到尝试的命令。在 VSCode 的终端或另一个终端类型应用程序中运行完全相同的命令,系统会提示我输入密码,输入正确的密码后,操作成功。

git Remote origin url 是此处描述的格式的 SSH URL ;它不是 …

git ssh passphrase ssh-keys visual-studio

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

为什么 getComputedStyle 不为父元素隐藏的元素返回 display:none ?

根据这个问题页面和这里接受的答案,通过Javascript获取继承的CSS值的正确方法是getComputedStyle()。但是,这在以下示例中不起作用:

\n\n
<!DOCTYPE html>\n<html lang="en">\n<body>\n    <form id="iterateThroughMe">\n        <div class="notHidden"><input name="myNum" type="number" /></div>\n        <div><input name="myOtherNum" type="number" /></div>\n        <input name="myText" type="text" />\n        <div id="hider" style="display: none;">\n            <input name="hiddenElement" type="number" />\n        </div>\n    </form>\n    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>\n    <script>\n    var inputs = $("#iterateThroughMe").find(\'input\');\n    for(var i = 0; i<inputs.length; i++) {\n        var displayStyle = window.getComputedStyle(inputs[i], null).display;\n        console.log(\n            (($(inputs[i]).is(":hidden"))?"in":"")+\n            "visible element: ",inputs[i],"has display style",displayStyle);\n    }\n    </script>\n</body>\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n

保存并在浏览器中打开,在控制台上可以看到以下内容:

\n\n
visible element:  <input name=\xe2\x80\x8b"myNum" type=\xe2\x80\x8b"number">\xe2\x80\x8b has display style inline-block\nvisible element:  <input name=\xe2\x80\x8b"myOtherNum" type=\xe2\x80\x8b"number">\xe2\x80\x8b has …
Run Code Online (Sandbox Code Playgroud)

html javascript css inheritance dom

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

检查 === 未定义时未捕获的 ReferenceError(未定义)

我有以下代码:

simpleExample.html

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Simple example</title>
</head>
<body>
    Open the Console.
    <script src="js/simpleExampleJS.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

js/simpleExampleJS.js

MyObject = {
    COMPUTER_GREETING: "Hello World!",
    hello: function() {
        console.log(MyObject.COMPUTER_GREETING);
    }
};

checkSomeGlobal = function() {
    if(someGlobal === undefined) {
        console.log("someGlobal is undefined & handled without an error.");
    } else {
        console.log("someGlobal is defined.");
    }
};

MyObject.hello();
checkSomeGlobal();
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到:

Hello World!
Uncaught ReferenceError: someGlobal is not defined
at checkSomeGlobal (simpleExampleJS.js:9)
at simpleExampleJS.js:17
Run Code Online (Sandbox Code Playgroud)

(第一行输出一般表示代码正在加载和运行)。

MDN表明一个潜在的未定义变量可以用作严格相等/不相等比较的左侧大小。然而,在检查 …

javascript comparison undefined comparison-operators

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

如何在java中使用File.mkdirs()编写优雅的代码?

我需要一个目录来保存文件,但我不确定它是否存在.
所以我需要先检查它是否存在,并在必要时创建它.

File saveDir = new File("/tmp/appname/savedir/");
if(!saveDir.exists()){
    saveDir.mkdirs(); 
}
Run Code Online (Sandbox Code Playgroud)

如上所述,有一个问题.
方法"saveDir.exists()"返回一个布尔值,指示文件路径是否存在.

当然,我可以写一些冗余和丑陋的代码来工作.

有没有办法写一些优雅的代码来实现这个目标?

java io file mkdirs

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