V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hackpro  ›  全部回复第 1 页 / 共 148 页
回复总数  2949
1  2  3  4  5  6  7  8  9  10 ... 148  
1 天前
回复了 xing7673 创建的主题 生活 记一次淘宝买激活码被骗经历
@380cc 感谢老哥
1 天前
回复了 xing7673 创建的主题 生活 记一次淘宝买激活码被骗经历
@380cc 感谢老哥分享 这邮件确实证实了所有淘宝在售的都是野鸡店

另外问一下 这个 license 是终身免费升级(包括大版本号以及新 feature )吗
还是跟有些软件一样 可以一直用但是不能升级新 feature 或者大版本?
图表的显示不错 比 typora 好
但是显示细腻程度离 typora 还有距离😄
最好弄个邮件订阅 只需要运行一次 大家集体收益
3 天前
回复了 xing7673 创建的主题 生活 记一次淘宝买激活码被骗经历
@xing7673 意思是蜜蜂🐝他们买的是正版的码吗?
3 天前
回复了 xing7673 创建的主题 生活 记一次淘宝买激活码被骗经历
@380cc 祖国版是啥意思 这玩意还有特供?🤣
3 天前
回复了 Rooger 创建的主题  WATCH 2026 年争取每日消耗大卡超过 550
太冷了每天完全不想动怎么办🤣
@wowh chrome 里我 check 了 应该没啥问题
刚试了 edge 浏览器小窗口也是黑色主题🤣
不错不错 我之前写了个类似的🤣
https://imgur.com/a/4RJRYxv

给个反馈意见:
1. 不要放左侧 因为有历史对话记录 容易冲突
2. 折叠后还是会占用一定屏幕宽度 建议做成按钮动态收缩的
@wowh
* macOS 15.1 light theme, 1p 6.8.9 主程序 light theme, 1p mini extension dark
* macOS 10.15 light theme, 1p 6.8.9 主程序 light theme, 1p mini extension light

https://imgur.com/a/zhTyhfe
@BI2RTR 感谢 这个临时用一下不用存很方便啊
@wowh 问题是我系统设置的是 light theme
1p 主程序打开也是 light 但是 chrome 插件也 dark theme🤣
@BI2RTR #1 这个钉图怎么搞的
这个活动是只有国内才有吗
只有国行机器才行吗 还要在保吗
@wowh 老哥顺便请教下你的 1p mini 浏览器小窗口也是 dark 背景吗
我记得原版的好像不是这样还是脚本改了什么东西 每次扒拉账号信息看起来好吃力😄
@wowh 感谢老哥
我测了手头俩台设备 好像只有 M 系列才有这个问题 intel 10.15 没问题🤣
和官网原始版本( 6.8.9 )最大的不同就是现在完全不需要输入 master 密码解锁
Alfred launch 后直接就解锁了🔓

不知道有其他大佬也是这样的情况吗😄😄
我用 Gemini 把 https://github.com/wowh/1password
和之前的代码 https://github.com/scramblr/1password 做了比对

大家可以参考一下


While they are both versions of the Stanford JavaScript Crypto Library (SJCL) and share about 99% of the same logic, Code 2 contains environment-safety modifications that are missing in Code 1.

Specifically, Code 2 has been updated to be more "environment-aware" (likely to prevent crashes in Node.js or Server-Side Rendering environments), whereas Code 1 is a more traditional browser-only minification.

Key Logical Differences
Here are the specific areas where the logic differs beyond simple formatting:

1. Environment Safety Checks (window and document)
In the sjcl.random.startCollectors and stopCollectors functions, Code 2 adds checks to see if window or document are defined before accessing them.

Code 1:

JavaScript

if(window.addEventListener){ ... }
else if(document.attachEvent){ ... }
Logic: This will throw a ReferenceError in environments like Node.js because window is not defined.

Code 2:

JavaScript

if (typeof window !== "undefined" && window.addEventListener) { ... }
else if (typeof document !== "undefined" && document.attachEvent) { ... }
Logic: This is safe. It checks the type first, so it won't crash in non-browser environments.

2. Error Handling Removal
In the startCollectors function, Code 1 has a fallback error that Code 2 has removed.

Code 1:

JavaScript

else throw new sjcl.exception.bug("can't attach event");
Code 2: The else block is entirely removed. If it can't find window or document, it simply does nothing rather than throwing an exception.

3. Stop Collectors Logic
A similar change exists in stopCollectors:

Code 1: Directly checks window.removeEventListener.

Code 2: Checks typeof window !== "undefined" before attempting to access window.removeEventListener.



While they share the same core cryptographic libraries (SJCL) and general business logic, Code 2 is a significantly modified version of Code 1, specifically updated to be compatible with Chrome Extension Manifest V3 (MV3). Code 1 is written for the older Manifest V2 (MV2) standard.

Here are the specific logical and functional differences:

1. Global Scope Reference (window vs. self)
Since Manifest V3 uses Service Workers (which do not have access to the window object), the global scope references have been changed.

Code 1: Uses window (e.g., n='undefined'!=typeof window&&window===this?this... and window.OnePassword=r).

Code 2: Uses self or globalThis (e.g., n = 'undefined' != typeof self && self.self === self ? self... and self.OnePassword = r).

2. Browser Action API
Chrome changed the "Browser Action" API to a generic "Action" API in Manifest V3.

Code 1: Uses chrome.browserAction (e.g., chrome.browserAction.onClicked... and chrome.browserAction.enable()).

Code 2: Uses chrome.action (e.g., chrome.action.onClicked... and chrome.action.enable()).

3. Navigation Interception (webRequest vs. tabs)
This is the most significant logical rewrite. Manifest V3 restricts the use of blocking webRequest.

Code 1: Uses chrome.webRequest.onBeforeRequest with the ['blocking'] attribute to intercept URLs containing onepasswdfill.

Code 2: Completely removes the webRequest logic and replaces it with a chrome.tabs.onUpdated listener. It now watches for tab updates to detect those specific URLs instead of intercepting the network request.

4. Context Menus Implementation
Code 1: Uses the onclick property directly inside the chrome.contextMenus.create object.

Code 2: Removes the onclick property from the creation object (as it's forbidden in MV3) and implements a centralized listener using chrome.contextMenus.onClicked.addListener. It also adds a mandatory id to the menu item.

5. URL API Modernization
Code 1: Accesses the URL constructor via window.URL || window.webkitURL.

Code 2: Accesses it via globalThis.URL || URL.
我倒是觉得窗口切不切换的无所谓
但是自己写了一款应用把高频使用的软件磁吸在窗口边缘 即点即用
1  2  3  4  5  6  7  8  9  10 ... 148  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1282 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 17:30 · PVG 01:30 · LAX 09:30 · JFK 12:30
♥ Do have faith in what you're doing.