那里有许多MD5 JavaScript实现.有谁知道哪一个是最先进的,最错误的,最快的?
我需要它用于这个工具.
我有两个窗口:窗口A和窗口B.
问题:
我知道这样做的两种方式:
但这两种方式并不那么优雅.
例如,获得窗口B的引用并使用window.postMessage()(HTML5)会很不错
最终的目标是制作像facebook这样的东西,如果你打开4个Facebook标签并在一个标签中聊天,聊天是最新的每个Facebook标签,这是整洁的!
每当我尝试在 TypeScript 环境中向全局 Nodejs 全局 namspace 添加函数时,都会收到此错误。
元素隐式具有“any”类型,因为类型“typeof globalThis”没有索引签名
声明全局命名空间
declare global {
namespace NodeJS {
interface Global {
signin(): string[]
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以如果我尝试这个
global.signin = () => {}
Run Code Online (Sandbox Code Playgroud)
它返回一个
元素隐式具有“any”类型,因为类型“typeof globalThis”没有索引签名
据说,不应该将所有域添加到CORS,而应该只添加一组域.然而,添加一组域有时并非易事.例如,如果我想公开公开API,那么对于想要调用该API的每个域,我需要联系以将该域添加到允许的域列表中.
我想在安全影响和减少工作之间做出有意识的权衡决定.
我看到的唯一安全问题是DoS攻击和CSRF攻击.使用IMG元素和FORM元素已经可以实现CSRF攻击.可以通过阻止对引用者头部的请求来克服与CORS相关的DoS攻击.
我错过了安全隐患吗?
===编辑===
Access-Control-Allow-Credentials
未设置标头IE11不会也不会实现ES2015代理对象.然而,IE11的延长支持终止于2025年10月14日.
有没有办法为IE11填充代理对象?所有其他浏览器都支持Proxy.
如果是,那么我们今天都可以在生产中使用它.如果没有,那么我们将不得不等待近十年......
编辑:我专门针对IE11,因为我知道IE通常具有我通常不知道的IE特定功能.
Edit2:我特别感兴趣的是能够实现一个全能拦截器.与__getattr__
Python 类似.它只需要在IE11中工作.
javascript internet-explorer ecmascript-6 internet-explorer-11 es6-proxy
我正在尝试使用共享工作者来维护Web应用程序的所有窗口/选项卡的列表.因此,使用以下代码:
//lives in shared-worker.js
var connections=[];//this represents the list of all windows/tabs
onconnect=function(e){
connections.push(e.ports[0]);
};
Run Code Online (Sandbox Code Playgroud)
每次创建窗口时,都会与shared-worker.js
worker 建立连接,并且worker将与窗口的连接添加到connections
列表中.
当用户关闭窗口时,它与共享工作程序的连接将过期,应从connections
变量中删除.但我找不到任何可靠的方法来做到这一点.
查看规范,connections
变量的对象似乎没有包含属性/函数来检查连接是否仍然存在.
可能吗?
同样,总体目标是拥有所有窗口/选项卡的列表.
编辑:一种方法是使共享工作者消息窗口并期待回复.如果共享工作者没有收到回复,那么它将认为该窗口已关闭.在我的实验中,这种方法并不可靠; 问题是没有办法判断一个窗口是关闭还是只是花了很长时间才能回复.
他们是这样的图书馆吗?
任何浏览器都不支持AFAIK dataToURL('image/gif')
是否有一种全局方法可以检测音频何时在浏览器中播放或开始播放。
类似的想法 if(window.mediaPlaying()){...
没有将代码绑定到特定元素?
编辑:这里重要的是无论音频来自何处,都能够检测到任何音频。无论是来自 iframe、视频、Web Audio API 等。
众所周知,TypeScript 仅在编译时进行类型检查。
有几种现有的方法可以添加运行时检查,例如io-ts,但我想知道是否有更简单的方法。
例如,一个 Babel 插件可以转译这个:
type Todo = {
userId: number;
id: number;
title: string;
completed: boolean;
}
const resp = await fetch("https://jsonplaceholder.typicode.com/todos/1");
const data = await resp.json();
assert(data typeof Todo);
Run Code Online (Sandbox Code Playgroud)
对此:
const __TodoType = {
userId: Number;
id: Number;
title: String;
completed: Boolean;
};
const __isTodoType = obj => (
obj &&
obj.constructor === Object &&
Object.keys(obj).length === Object.keys(__TodoType).length &&
Object.entries(obj)
.every(([prop, val]) =>
__TodoType[prop] && val &&
__TodoType[prop] === val.constructor)
);
const resp = await …
Run Code Online (Sandbox Code Playgroud) javascript ×8
html5 ×4
node.js ×2
typescript ×2
addthis ×1
audio-player ×1
babeljs ×1
canvas ×1
cors ×1
ecmascript-6 ×1
es6-proxy ×1
html5-canvas ×1
md5 ×1
media-player ×1
performance ×1
postmessage ×1
security ×1
sharethis ×1
social ×1
web-worker ×1
webkit ×1