小编bri*_*out的帖子

使用 JavaScript 检测 React

作为一名库作者,我想知道我的库是否与 React 或其他一些 UI 框架(Vue、Svelte 等)一起使用。

有没有办法检测React的代码是否被加载?

以下 Stack Overflow 答案没有回答这个问题,因为它们只能使用开发者控制台。(而我想从 JavaScript 库的角度来检测 React。)

上下文:我正在构建vite-plugin-ssr。(它类似于 Next.js/Nuxt,但作为一个只做一件事、做好它的 Vite 插件。)

编辑:在 React渲染/水化页面之前,我需要能够在浏览器中加载 React 后立即检测到 React。到目前为止,下面的所有答案都发现 React 为时已晚。

javascript reactjs

14
推荐指数
1
解决办法
1100
查看次数

Javascript - 检测用户的区域设置是否设置为使用12小时或24小时时间格式

一种方法是解析new Date().toLocaleString().但这在chrome/webkit中不起作用,因为它返回的字符串不依赖于用户的语言环境(请参阅http://code.google.com/p/chromium/issues/detail?id=3607上的错误报告)

我强调,我正在寻找一种只有客户端的解决方案,并且它在铬中起作用.

javascript locale localization google-chrome chromium

11
推荐指数
2
解决办法
4848
查看次数

JSON中的JSON.stringify()是否具有确定性?

我还没有看到(还有?)JSON.stringify在Node.JS中是不确定的.

不能保证它在规范级别上具有确定性.

但是V8呢?它的实施是否具有确定性?是否可以保证它在未来的V8版本中保持确定性?

编辑:

确定性我的意思是,无论价值json_str是什么,跟随断言都是正确的.(给定值是有效的JSON字符串.)

const obj = JSON.parse(json_str);
assert(JSON.stringify(obj)===JSON.stringify(obj)); // always true
Run Code Online (Sandbox Code Playgroud)

编辑2:

实际上,我也对下面的断言感兴趣

if( deepEqual(obj1, obj2) ) {
    assert(JSON.stringify(obj1)===JSON.stringify(obj2))
}
Run Code Online (Sandbox Code Playgroud)

事实并非如此(见答案).

javascript v8 memoization node.js

10
推荐指数
3
解决办法
3031
查看次数

是否可以通过创建新的(未发布的)"子"包来分解(已发布)包的依赖列表?

我维护一个在npm注册表上发布的JavaScript库,它有很多依赖项.很难跟踪代码的哪个部分取决于外部包.

不幸的是lerna,yarn工作空间,npm link或者npm本地路径依赖声明都没有帮助.(我解释了为什么在这个例子之后.)

我希望能够通过将一些依赖项提取到新的"子包"中来分解dependencies声明的列表package.json.

所以,而不是具有以下依赖列表

// ~/code/example-lib/package.json
{
  "name": "example-lib",
  "dependencies": {
    "lodash": "*",
    "request": "*",
    "chalk": "*",
    "bluebird": "*",
    "mz": "*",
    "moment": "*",
    "socket.io": "*",
    "socket.io-client": "*",
    "react": "*",
    "react-dom": "*"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想将一些依赖项提取到一个新的本地包中example-lib-subpackage.对于本地而言,我的意思example-lib-subpackage是仅仅意味着消费example-lib.

example-lib-subpackage的依赖列表是;

// ~/code/example-lib/packages/example-lib-subpackage/package.json
{
  "name": "example-lib-subpackage",
  "dependencies": {
    "lodash": "*",
    "request": "*",
    "bluebird": "*",
    "moment": "*",
    "socket.io-client": "*",
    "react": "*",
    "react-dom": "*"
  }
}
Run Code Online (Sandbox Code Playgroud)

并且example-lib …

javascript node.js npm lerna yarnpkg

10
推荐指数
2
解决办法
474
查看次数

Unicode 符号和操作系统/浏览器字体支持

有很多精彩的 unicode 符号。这真太了不起了。

\n

但如果我不知道我的用户的字体是否支持它们,它们就毫无用处。

\n

我怎样才能找到它?

\n

我可以跟踪用户的字体是否支持 unicode 符号吗?

\n

有什么办法可以有某种后备吗?(如果不支持此 unicode 符号,则显示其他 unicode 符号。)

\n

有操作系统/浏览器支持参考吗?(到目前为止,我已经广泛搜索了此类参考资料,但没有任何运气。)

\n

您决定是否使用 unicode 符号的策略是什么?

\n

我很想使用更多这些可爱的 unicode 符号。

\n

===编辑===

\n

例如:我想在readme.mdGitHub 上的项目中使用 unicode“U+2605 \xe2\x98\x85 BLACK STAR”。我怎样才能知道这个unicode符号是否会正确显示?

\n

unicode browser-support

10
推荐指数
1
解决办法
1310
查看次数

`http://localhost` 上的安全 Cookie

我正在尝试在以下位置设置安全 cookie http://localhost:3000

设置 Cookie:loggedUser=brillout;最大年龄=315360000;路径=/;仅 Http;安全的

但 Chrome 抱怨道:

此 Set-Cookie 被阻止,因为它具有“安全”属性,但不是通过安全连接接收的。

然而,根据 MDN 的说法,它应该可以工作:

具有 Secure 属性的 cookie 仅通过 HTTPS 协议上的加密请求发送到服务器,绝不会使用不安全的 HTTP(本地主机除外

是否可以Secure在存在时设置http://localhost?开发https://localhost而不是开发http://localhost不是一个选择。

cookies google-chrome http node.js web

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

动态svg favicon?

我有一个SVG图标.我想用不同的颜色作为favicon.

由于SVG元素没有任何toDataUrl(),因此我没有看到不涉及服务器的解决方案.

客户端解决方案的任何想法?

javascript favicon svg fabricjs

8
推荐指数
2
解决办法
4725
查看次数

HTML5缓存 - 是否可以为单个URL提供多个不同的缓存?

每个URL都可以链接到单个缓存清单.但我想要一些链接到同一URL的缓存清单.原因如下:

我想要缓存的一些文件很少更新和大.因此,每次缓存更新时,这些大文件都会重新下载,即使它们可能没有被更改.所以我想拆分缓存.一个用于论文的缓存很少更新大文件,而另一个缓存用于经常更新的光文件.

你们有没有想过如何拆分HTML5缓存?

html html5 caching cache-manifest

8
推荐指数
1
解决办法
3753
查看次数

HTML5; 在Javascript中检测物理键盘的存在

检测用户是否有物理键盘的最可靠方法是什么?

一个想法是,因为没有物理键盘window.onkeydown可以undefined(而不是null).但由于虚拟键盘,我认为情况并非如此.我没试过.

我的目标是有input[type='number']一个的在线计时器与轮采摘来代替,如果用户没有键盘.

javascript mobile html5 webkit web-applications

8
推荐指数
2
解决办法
3058
查看次数

以编程方式使输入[type = url]的数据列表与JavaScript一起出现

在Chrome中,就目前而言,Datalist仅在键入或双击input元素时出现,例如http://jsfiddle.net/r7Y4v/

我试图让数据主义者更早出现.理想情况下,我会在输入旁边放置一个"下拉箭头",单击该按钮会使Datalist出现.

我正在寻找一个webkit解决方案.

javascript html5 google-chrome input html-datalist

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