根据element.execCommand()函数的API,它说它具有三个参数:aCommandName,aShowDefaultUI,aValueArgument。
API对第一个和第三个参数的描述非常清楚,但是我不确定第二个参数的含义。
这就是API所说的:
aShowDefaultUI:一个布尔值,指示是否应显示默认用户界面。Mozilla中未实现此功能。
说“默认用户界面”是什么意思?
作为参考,我正在使用element.execCommand()创建自己的WYSIWYG Web文本编辑器,该编辑器只需要在Google Chrome中运行即可。
addEventListener("load", run);
function run() { //code }
Run Code Online (Sandbox Code Playgroud)
当我在网络浏览器中尝试时,上面的代码似乎可以工作。我的猜测是,这是因为如果使用 addEventListener 而不使用目标元素,它默认为 window 对象?
谁能证实这一点吗?
定义: 请从一开始就注意到,通过"注入脚本","扩展代码"和"内容脚本",我将使用此问题的优秀第一个答案中提供的定义.
假设:如果我在注入的脚本(在Web区域中)直接执行机密信息,那么处理机密信息的安全性就低于我在内容脚本和扩展代码的chrome://区域内执行机密信息的安全性.因此,我应该使用消息传递将机密信息从Web区域发送到chrome://区域以便进行处理.
问题:我正在构建Google Chrome扩展程序,我需要对从我注入的脚本派生的敏感用户数据运行一些操作.有问题的数据是保密的,我必须尽我所能确保除了扩展用户之外,任何人都看不到它,直到我对它进行操作.可以用于在注入的脚本和扩展代码/内容脚本之间传递消息的3种技术(定义如下)中最适合此目的的技术?
我对可用于在注入的脚本和扩展代码/内容脚本之间传递数据的3种不同技术的理解:
对于在注入的脚本和扩展代码(例如后台页面)之间传递消息,可以使用chrome.runtime API.
对于在注入的脚本和内容脚本之间传递消息,可以使用window.postMessage.
在注入的脚本和内容脚本之间传递消息的另一种方法是通过document.dispatchEvent(CustomEvent).
我的理解是方法1.不能用于注入脚本和内容脚本之间的消息传递,而方法2和3.不能用于注入脚本和扩展代码之间的消息传递(除非消息由内容转发)脚本,例如,背景页面).
javascript security google-chrome message-passing google-chrome-extension
在查看ProtoBuf.js的文档之后,我才发现PSON,这看起来像是一项了不起的创新。
在文档中说:
PSON允许生成比ProtoBuf还要小的协议,但必须明智地使用它。
我刚刚阅读了PSON文档,但不确定ProtoBuf.js文档的作者为什么说PSON来了
以必须明智地使用它为代价。
有人可以解释为什么会这样吗?在我看来,PSON看起来是协议缓冲区的高级格式。
javascript serialization json protocol-buffers deserialization
对于此类问题,我深表歉意,但我无法在您可能不需要 jQuery或其他任何在线网站上找到答案,我真的很想知道:
jQuery 的 .parents() 方法的纯 JavaScript 等价物是什么?
例如,知道如何在纯 JavaScript 中执行此操作会很棒:
jQuery(element).parents('.className');
Run Code Online (Sandbox Code Playgroud) 我现在正在创建Google Chrome扩展程序,我想知道它是否可以创建JSON文件以进行下载(导出)并创建一个按钮,用户可以在其中打开扩展程序并解析他们已保存的JSON文件他们的本地文件系统或USB记忆棒(导入)?
从本地文件系统解析每个JSON只需要读取每个键值对并对数据执行某些操作.它只需要处理字符串,所以没有什么复杂的.
**编辑:**我的问题不是这个问题的重复,因为我对更改用户的下载路径不感兴趣.我想要的是让他们在征得他们的同意后,将文件下载到他们的正常下载目录(Filesaver.js可以做到).另外,该帖子没有说明导入.
javascript json google-chrome google-chrome-extension google-chrome-app
我正在寻找以类似于Java类的方式编写面向对象的JavaScript(JS)代码的最佳方法.
工厂函数(FF)看起来像是一种在JS中提供类类功能的非常有前途的方式,到目前为止,我一直在构建它们:
function FF(constructorArg)
{
var _privateName = constructorArg;
var publicMessage = "Hello StackOverflow";
function publicMethodGetName() {
return _privateName;
}
return {
publicMethodGetName: publicMethodGetName,
publicMessage: publicMessage
};
}
Run Code Online (Sandbox Code Playgroud)
但是,我最近发现,与原型方法不同,这种样式的FF为每个FF实例重新创建每个方法,因此可能会降低性能.
在这个优秀主题的第二个答案中,Eric Elliot谈到了FF:
如果将原型存储在父对象上,这可能是动态交换功能的好方法,并为对象实例化启用非常灵活的多态性.
我在网上找不到这个例子.任何人都可以向我解释我如何使用上面的FF来做到这一点?
如果我知道将从同一个FF创建许多对象,这是否意味着我可以将FF切换为使用原型方法?
如何更改网站JavaScript代码中的变量值?
我想知道,因为我现在正在建立一个网站,作为代码的一部分,我有一个变量,其价值对网站的功能有重要影响.因此,我希望知道某人如何能够改变这一价值(即使它只影响该用户所看到的网站).
我对学习如何在Google Chrome中执行此操作特别感兴趣.
javascript debugging google-chrome breakpoints google-chrome-devtools
javascript ×8
client-side ×2
json ×2
web ×2
breakpoints ×1
debugging ×1
dom ×1
factory ×1
jquery ×1
performance ×1
prototype ×1
security ×1
wysiwyg ×1