Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。

5
Codewars解决方案-互相作用的函数嵌套
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 4个月前关闭。 我一直在寻找解决代码战难题的解决方案,但我不明白为什么会起作用。minus()如何工作? function makeNum(num, func) { if (func === undefined) { return num; } else { return func(num); } } function three(func) { return makeNum(3, func); } function eight(func) { return makeNum(8, func); } function minus(right) { return function(left) { return left - right; }; } console.log(eight(minus(three()))); // …
11 javascript 

2
在Chrome网上商店中时,为什么无法使用html按钮打开标签页?
我的前端有一个页面,其中包含不同的按钮,所有按钮都可以单独正常工作,但是如果我单击在chrome网站商店中打开扩展程序的按钮,然后再单击另一个按钮,则该页面不会打开。 这是我正在谈论的事的典范。如果您在未关闭要打开的标签的情况下单击按钮,则在chrome网上应用店打开后单击的按钮将无效。有人知道这是为什么以及如何解决吗? https://html-ichr7r.stackblitz.io 这是它的代码。 <button id="button1" onclick="window.open('https://www.facebook.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button><br> <button id="button2" onclick="window.open('https://www.google.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button> <button id="button3" onclick="window.open('https://chrome.google.com/webstore/detail/dark-mode/dmghijelimhndkbmpgbldicpogfkceaj?hl=de','popup','width=700,height=300');"><strong>CONTINUAR</strong></button><br> <button id="button4" onclick="window.open('https://www.9gag.com/','popup','width=700,height=300');"><strong>CONTINUAR</strong></button> 任何帮助表示赞赏! 编辑:我刚刚发现它可以在Firefox中使用,但仍然不知道为什么它不能在Chrome中使用。

2
无法从React-Native-Firebase(v6)Firestore获取数据:undefined不是函数(在'... this._firestore.native.collectionGet ...附近)
我已经在这个问题上停留了很长时间。我刚刚开始使用react-native-firebase在我的react-native应用程序中实现Firestore。我只是关注文档[ https://invertase.io/oss/react-native-firebase/v6/firestore/quick-start#reading-data],但它对我不起作用。 这是在Android中。尚未在iOS中进行测试。 我不断收到此错误: [TypeError: undefined is not a function (near '...this._firestore.native.collectionGet...')] 以下是相关代码: import React, {Component} from 'react'; import { firebase } from '@react-native-firebase/firestore'; export default App extends Component{ constructor(props) { super(props); this.getData= this.getData.bind(this) this.getData() this.state = {}; } async getData() { try { const querySnapshot = await firebase.firestore() .collection('Gyms') …

2
如何用分类账签署比特币psbt?
我正在尝试按照我在这里找到的从bitcoinjs-lib签名Psbt事务: https://github.com/helperbit/helperbit-wallet/blob/master/app/components/dashboard.wallet/bitcoin.service/ledger.ts 我检查了账本和bitcoinjsLib的压缩公钥是否都返回了相同的值。 我可以使用bitcoinjs-lib ECPair对其进行签名,但是当我尝试使用分类帐对其进行签名时,它始终无效。 有人可以帮我指出我在哪里做错了吗? 下面的代码中已经提到了这些变量,但是为了清楚起见: - mnemonics: abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about - previousTx: 02000000000101869362410c61a69ab9390b2167d08219662196e869626e8b0350f1a8e4075efb0100000017160014ef3fdddccdb6b53e6dd1f5a97299a6ba2e1c11c3ffffffff0240420f000000000017a914f748afee815f78f97672be5a9840056d8ed77f4887df9de6050000000017a9142ff4aa6ffa987335c7bdba58ef4cbfecbe9e49938702473044022061a01bf0fbac4650a9b3d035b3d9282255a5c6040aa1d04fd9b6b52ed9f4d20a022064e8e2739ef532e6b2cb461321dd20f5a5d63cf34da3056c428475d42c9aff870121025fb5240daab4cee5fa097eef475f3f2e004f7be702c421b6607d8afea1affa9b00000000 - paths: ["0'/0/0"] - redeemScript: (non-multisig segwit) 00144328adace54072cd069abf108f97cf80420b212b 这是我拥有的最低可重复代码。 /* tslint:disable */ // @ts-check require('regenerator-runtime'); const bip39 = require('bip39'); const { default: Transport } = require('@ledgerhq/hw-transport-node-hid'); …

2
同时使用键盘事件进行滚动和CSS滚动捕捉时发生冲突
您可以通过按下水平滚动我的演示页Space Bar,Page Up / Page Down和Left Arrow / Right Arrow键。您也可以使用鼠标或触控板捕捉滚动。 但是只有其中一项有效。 键盘事件和CSS滚动捕捉是否可以共存?我想念什么?任何帮助将不胜感激,因为我一直在努力解决这个问题超过一个星期。 在CodePen上查看我的演示 (请取消注释相关的CSS代码段以启用滚动捕捉效果,以查看键盘快捷键停止工作。) 显示代码段 import animate from "https://cdn.jsdelivr.net/npm/animateplus@2/animateplus.js" const sections = Array.from(document.querySelectorAll("section")).sort( (s1, s2) => { return s1.getBoundingClientRect().left - s2.getBoundingClientRect().left } ) const getSectionInView = () => { const halfWidth = window.innerWidth / 2 const index = sections.findIndex( section …

3
我可以关闭优化吗​​,所以闭包中的范围内变量不会被“优化”
作为现代浏览器完成代码优化的副产品,在调试时,您无法“看到”“实际上”在范围内的所有变量。这是众所周知的,并且已经在SO上的上一个问题中得到了解决。此功能虽然在生产中最肯定有用,但在开发过程中却使我很烦,但它会使我放慢速度(这很明显)。 现在我的问题是,有什么办法可以关闭这种行为?我可以编辑一些配置文件,还是有浏览器插件,或者有浏览器可执行文件的“开发人员专用构建版本”?我喜欢在编写新代码时立即在控制台中输入代码,所以这确实困扰了我。 更新/编辑 这是部分解决方案,应归功于Paul1365972。 您必须使用特殊选项从命令行启动chrome浏览器,如下所示: 完全关闭Chrome 从控制台运行Chrome "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" --js-flags="--allow-natives-syntax" ,适用于Windows其他操作系统。 打开开发人员控制台并执行"%GetHeapUsage()"。如果您使用选项正确启动了Chrome,则会在控制台上记录一个数字,否则会出现语法错误。 使用此命令行标志,您可以使用以开头的命令与V8引擎“对话” %,这是普通JavaScript中的语法错误。Paul的答案中列出了可用的此类V8命令。 有%NeverOptimizeFunction()该列表,这是一些东西,看起来像的东西我只需要调用,并用它做的。不幸的是,该功能没有实现我所希望的,如下面的屏幕快照所示。 (((在保罗的回答其他链接(V8本地人节点模块)并不那么重要,对我们这里在这种情况下,它所做的就是它环绕的“%”功能调用单行这样的代码不会崩溃不是v8的浏览器。))) ((((((我记得有一次它是在那时(尚未发明/实现这种优化)。我不知道多久。十年?十五年?类似的东西。最后一个Chrome版本是什么(如果任何)以及您可以做什么的最后一个Firefox版本(请确保在此存在)是什么?如果您碰巧知道并将其发布为答案,它不会给您带来悬赏,但会给您带来赞誉。 。))) 解决方案 谢谢彼得·斯尼科克 新问题 虽然Petr的解决方案有很大帮助,但这并不完美。这个问题太长了,所以我发布了一个新的问题,关于如何改进Petr的解决方案。(我当然可以在这里编辑此问题,但是,如果您了解我的意思,那将感到“不历史”。)

1
如何为React Router SPA实现滚动还原
我正在构建一个React单页应用程序,并且我注意到滚动恢复似乎无法在Chrome(可能还有其他浏览器)中按预期工作。 在react-router-dom github repo上,他们有一个页面说浏览器开始本地处理单页面应用程序的滚动,并且如果history.scrollRestoration设置为,则行为将类似于传统的非SPA网页。auto。 该页面上显示了我需要的行为: 向上滚动导航,这样就不会启动滚动到底部的新屏幕。 恢复窗口的滚动位置和“后退”和“前进”单击上的溢出元素(但不单击“链接”单击!) 但是我还需要禁用包含选项卡或轮播的路由的行为。 这是Chrome关于此问题的规范的链接。 我在适用于OS X的Chrome版本78.0.3904.97(正式版本)(64位)中观察到的内容似乎是我期望的history.scrollRestoration manual设置。也就是说,当我向下滚动页面一半并单击链接时,下一页向下滚动到页面中间,与上一页相同。 我history.scrollRestoration在各个地方检查了,发现它开始并保持auto为默认状态, 这里的一个重要意义来自@TrevorRobinson的回答:“浏览器自动进行滚动还原的尝试... ...大多数不适用于单页面应用程序...”好的...我发现对的一致支持history.scrollRestoration,但是显然,浏览器在实际进行滚动还原时很cr脚。那应该在这里指出,这今天可以节省我的时间。 然后,我寻找手动执行此操作的方法,但不清楚前进的方向。react-router-scroll说它与React Router v4不兼容,但是没有提到v5,这是当前的问题。那么我应该假设v5也不兼容吗? 因此,我进一步寻找前进的方向,并找到了有关如何使用React Router v4处理滚动还原的 SO答案...我是否应该认为这将适用于React Router v5?更新:在v5中似乎不适用于我。我尝试了几种配置。我也无法使其完全与React Router v4一起使用。我知道它至少还活着,因为它滚动到新页面的顶部,但是历史记录未恢复。 我也确实可以使用react-router-scroll-memory,但是它没有用于禁用在指定路线上滚动的选项,例如选项卡或轮播所需的选项……我可能会对其进行破解。 我考虑过使用oaf-react-router,但是在文档中没有对禁用某些路由的滚动恢复或从上到下滚动进行任何说明。编辑:它确实处理了此问题,如我的回答所述。 有什么我忽略的东西吗?解决此问题的标准是什么,因为我不是唯一需要此功能的人。似乎我在做一些前卫和实验性的工作,但我只需要让自己的网站像普通网站一样滚动即可。

1
适用于MacOs Catalina的Electron OpenGL
我正在建立一个电子应用程序,但是我遇到一个错误,这使渲染变得非常缓慢,并导致较高的cpu使用率 [1] Unable to create basic Accelerated OpenGL renderer. [1] Unable to create basic Accelerated OpenGL renderer. [1] Core Image is now using the software OpenGL renderer. This will be slow. 我试图找出答案,但是我找不到关于该问题的答案。有人对这个问题有任何想法吗?


3
如何避免使用Yarn在Monorepo中安装软件包
我使用Lerna和Yarn工作区构建了一个monorepo 。 一切正常,但是每次我使用以下方法在程序包上安装新的依赖项时(我们称其为A): yarn add <package_name> Yarn添加它,然后触发installmonorepo中所有软件包的脚本,甚至是A不依赖的软件包。 无论如何要避免这种情况?完全无需花费一些时间即可安装它们。

4
如何终止SignalR连接?
我正在使用SignalR在网站上传输数据。但是SignalR应该只能在一段时间内发送数据,并且如果该时间段过去了,则应该终止连接。 $.connection.hub.stop()如果请求仍未完成且未完成,则取消停止功能。但是无论发送了多少数据,都应强制取消此请求。 如何杀死 SignalR-Connection?

1
编写高性能的Javascript代码而无需优化
当使用对大型数值数组(例如线性代数程序包,对整数或浮点数进行操作)的Javascript编写对性能敏感的代码时,总是希望JIT尽可能提供帮助。大概意味着: 我们始终希望数组是压缩的SMI(小整数)或压缩的Double,这取决于我们是在进行整数还是浮点计算。 我们始终希望将相同类型的事物传递给函数,以使它们不会被标记为“大形”或未优化。例如,我们始终希望同时调用vec.add(x, y)这两个x并y打包SMI数组,或者同时打包两个Double数组。 我们希望尽可能内联函数。 当一个人偏离这些情况时,会突然而突然地降低性能。出于各种无害的原因,可能会发生这种情况: 您可以通过看似无害的操作将压缩的SMI数组转换为压缩的Double数组,例如的等效项myArray.map(x => -x)。实际上,这是“最佳”的坏情况,因为压缩Double数组仍然非常快。 您可以将打包的数组变成通用的盒装数组,例如通过将数组映射到(意外地)返回null或的函数上undefined。这种情况很容易避免。 您可能会取消对整个函数的优化,例如vec.add()通过传递太多类型的事物并将其变为大形。如果您想进行“泛型编程”,vec.add()则可能会发生这种情况,这种情况在您对类型不十分小心的情况下使用(这样会看到很多类型),并且在想要最大程度地提高性能的情况下也可以使用(例如,它只能收到盒装双打)。 我的问题更多是一个软问题,关于如何根据上述考虑编写高性能的Javascript代码,同时又保持代码的美观和可读性。一些特定的子问题,以便您了解我的目标是: 在打包SMI阵列的世界中,例如,在编程方面有一些准则吗? 是否可以使用Javascript进行通用的高性能编程,而无需使用诸如宏系统之类的工具将其内联vec.add()到callsite中? 鉴于宏调用站点和优化问题,如何将高性能代码模块化到库中?例如,如果我愉快地A高速使用Linear Algebra程序包,然后导入B依赖的程序包A,但B使用其他类型调用该程序包,然后对其进行优化,那么突然(无需更改代码)我的代码运行速度就会变慢。 是否有任何易于使用的良好测量工具来检查Javascript引擎在内部对类型进行的操作?

2
何时应针对特定副作用创建新的订阅?
上周,我回答了一个RxJS 问题,在那里我与另一位社区成员进行了讨论:“我应该为每种特定的副作用创建订阅,还是应该总体上减少订阅?” 我想知道在完整的反应式应用方法中使用什么方法,或者何时从一种方法切换到另一种方法。这将帮助我甚至其他人避免不必要的讨论。 设置信息 所有示例均在TypeScript中 为了更好地关注问题,不使用生命周期/构造函数进行订阅并保持框架无关 想象一下:在构造函数/生命周期init中添加了订阅 想象一下:取消订阅是在生命周期中完成的 什么是副作用(角度样本) 用户界面中的更新/输入(例如value$ | async) 组件的输出/上游(例如@Output event = event$) 不同层次结构上不同服务之间的交互 示例用例: 两个功能: foo: () => void; bar: (arg: any) => void 两个源可观察到的: http$: Observable<any>; click$: Observable<void> foohttp$发出后调用,不需要任何值 bar在click$发出后被调用,但需要的当前值http$ 案例:为每种特定副作用创建订阅 const foo$ = http$.pipe( mapTo(void 0) ); const bar$ = http$.pipe( switchMap(httpValue => click$.pipe( …

10
如何跨设备扩展localStorage(无数据库)
目标:扩展我已经localStorage在我的应用程序中实现的功能,当然,应该是非本地的。 我喜欢使用本地存储API保存简单用户设置的实现。我可以在Web应用程序中满足我的需要,但是唯一的问题是它对于正在使用/保存的机器/浏览器是本地的。为此,我无法访问经典的MySQL样式表。我想扩展或调整我的本地存储以继承到其他浏览器;或将我的用户设置存储在用户JS对象和JS对象属性中。 我喜欢这样的想法:只要有新用户,就为每个用户创建JSON或JavaScript对象,并使用名称,创建对象或object[key]名称,并首先使字段属性为默认变量,然后填充变量,或者用户保存它们时覆盖。 或者,如果上述观点不被接受;希望保留我的localstorage实施,因为它运行得很好,并找到了一个插件/库/扩展,使我也可以保存该并在不同位置重新渲染;这是必须要考虑的。尽管我很乐意将其保留在客户端;我对node.js解决方案以及python解决方案持开放态度,一个简单的各种数据框就足够了。 用我的localStorage数据生成文件怎么办?也许是一个.csv文件(这是非敏感数据),并且像我localStorage一样更新了吗?

1
剪贴板API调用抛出NotAllowedError而不调用onPermissionRequest()
这赏金已经结束。这个问题的答案有资格获得+50声望奖励。赏金宽限期在13小时内结束。 cyqsimon希望引起更多对此问题的关注。 我有一个带有按钮的简单页面,当按下按钮时,该页面使用Async Clipboard API写入剪贴板。 <body> <button type="button" onclick="testClipboard();"> Test Clipboard </button> </body> function testClipboard() { navigator.clipboard.writeText("Clipboard API Test").then( v => alert("Success"), e => alert("Fail\n" + e)); } 这适用于Chrome和Firefox,台式机和移动设备。但是,在Android Webview上,它引发以下错误: NotAllowError: Write permission denied. 我认为我需要重写WebChromeClient.onPermissionRequest()以授予许可,但是奇怪的onPermissionRequest()是似乎没有被调用,并且仍然抛出相同的错误。 public class WebChromeController extends WebChromeClient { @Override public void onPermissionRequest(PermissionRequest request) { Log.d("myTag", "Permission request"); …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.