假设我有两个进程:
进程 1 正在向进程 2 发送一个有效的 html 字符串:
ipcRenderer.send('open-window-from-string',
'<!DOCTYPE html>' + '<html>' + htmlElement.innerHTML + '</html>');
Run Code Online (Sandbox Code Playgroud)
进程 2(电子主进程)试图从该字符串打开一个新窗口:
ipc.on('open-window-from-string', (event, htmlString) => {
const windowFromString= BrowserWindow.fromWebContents(htmlString);
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以将 html 保存为实际的 html 文件。这样,在使用时一切正常:
loadURL(`file://${__dirname}/windowFromString.html`);
Run Code Online (Sandbox Code Playgroud)
但是,这会导致不必要的读/写操作。
这就是为什么我试图从我的记忆中的 htmlString 加载一个新窗口。那么问题又来了: 是否可以从内存中的 html 字符串加载电子 webContents?
在此先感谢您的帮助。
问候, Megajin
我知道INSIDE ES6类中没有REAL私有方法。但是我在玩了一会儿,发现了一些好东西-也许...
正如我提到的,不可能不公开对象的属性。但是,当我将类划分为单独的文件,然后将这些类导出时,我试图实现某种OOP编程:
class MyClass {
constructor() {
/**
* Initialize stuff...
*/
}
myMethod() {
/**
* Do public stuff...
*/
}
}
// expose class to environment.
export default MyClass;
Run Code Online (Sandbox Code Playgroud)
所以我可以导入该类:
import MyClass from './MyClass.js';
当然myMethod可以从导入该模块的任何其他文件访问。既然我需要只能由该类访问的变量和函数,我已经尝试过了:
// private variable outside of class scope but still accessible.
let possiblePrivateVariable = 'am I a private variable?';
class MyClass {
constructor() {
/**
* Initialize stuff...
*/
}
myMethod() {
// run private method.
console.log(_possiblePrivateMethod());
// …Run Code Online (Sandbox Code Playgroud) 我目前正在构建一个电子应用程序.我在我的本地文件系统上有一个PDF,我需要静默打印出来(在默认打印机上).我遇到了节点打印机库,但它似乎对我不起作用.有没有简单的解决方案来实现这一目标?
我目前正在尝试用USB Hub扫描所有USB端口(检查它是否为Root)以及它们连接到哪个控制器.
为了使其更加明显:
USB Port1 (nothing plugged in) -> USB Hub1 | |-> Controller 1
USB Port2 (Keyboard plugged in) -> |-> USB Root Hub |-> Controller 2
USB Port3 (nothing plugged in) -> USB Hub2 | |
USB Port4 (nothing plugged in) -> |-> USB Root Hub |-> Controller3 (Mainboard)
Run Code Online (Sandbox Code Playgroud)
我想将用户所有端口和连接的集线器显示为树.如果USB端口及其控制器正在使用中.
我希望你们能理解我想要描述的内容.如果你能给我一些关键词甚至代码片段我会非常感激.
PS:抱歉我的英语不好.
到目前为止,这是代码(我正在使用.NetFramework 4.5.x):
USBPortScanner类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management;
using System.IO.Ports;
namespace USBPortScanner
{
class USBPortScanner
{
static void Main(string[] …Run Code Online (Sandbox Code Playgroud) 我有一个页面,可以容纳多个可编辑的内容。每当内容被编辑时,我都想触发某种检查事件。
我实现此目的的代码如下所示:
// Find all editable elements.
let allEditableElements = document.querySelectorAll('[contenteditable="true"]');
for(let i = 0; i < allEditableElements.length; i++){
//Remove eventListener to prevent duplicate events.
allEditableElements[i].removeEventListener('input', (event) => {myClass.myEventMethod(event);}, false);
// Add event.
allEditableElements[i].addEventListener('input', (event) => {myClass.myEventMethod(event);}, false);
}
Run Code Online (Sandbox Code Playgroud)
到目前为止一切正常。但是正如我所说,用户可以编辑内容,包括向页面本身添加新的可编辑内容。届时事件将再次被设置,这就是为什么我尝试event事先删除事件的原因。
我的问题是为什么该removeEventListener功能不能按预期工作?并没有办法像这样给定事件命名:
// With eventNameGivenByUser an event could be removed just by its name.
addEventListener('eventTriggerName', 'eventNameGivenByUser', function(), [, options]);
Run Code Online (Sandbox Code Playgroud)
当然,我做了一些研究,发现代码本身可以像这样工作:
// Find all editable elements.
let allEditableElements = document.querySelectorAll('[contenteditable="true"]');
for(let i = 0; i < allEditableElements.length; i++){ …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试更多地了解nginx和作为网络服务器的给定安全性.我想象的设置是nginx,有3个虚拟主机.每个主机都运行一个博客.
在完成nginx的一些强化教程后,我确实发现自己陷入了困境http-headers......我不确定如果我有多个虚拟主机,通过nginx实施内容安全策略是否正确,这可能取决于不同的不同内容站点.
但是,我目前的立场是弄清楚如何在每个*-src参数中为nginx设置合理的内容安全策略白名单.
无论是指令引用和源列表的参考,也没有
最新的内容安全策略级别3做了回答"最佳实践白名单"所有的问题*-src.
假设我已经把'self'所有这些参数都放在了:
default-src:如果设置为,这是唯一有意义的参数 'self'
script-src,style-src,img-src,connect-src,font-src,child-src:其余的让我头疼.我怎么知道每个好消息来源?如果我将它们设置为'self'将使用户总是得到一个400 HTTP错误?
就像我之前说的那样,我不确定通过nginx实施内容安全策略是否正确.如果我正在运行一个拥有5个以上客户端的网络服务器,那么我就不可能知道这些客户的每个"好"来源.我想再次指出,我只是想知道这些源参数.其他HTTP-Headers(不仅仅是内容安全策略)对我来说很有意义,而且是完全合理的.
此致,Megajin
security webserver nginx http-headers content-security-policy
javascript ×3
node.js ×3
ecmascript-6 ×2
electron ×2
c# ×1
controller ×1
es6-class ×1
es6-modules ×1
http-headers ×1
nginx ×1
security ×1
usb ×1
webserver ×1