小编use*_*297的帖子

element.execCommand()中的aShowDefaultUI参数所指的“默认用户界面”是什么?

根据element.execCommand()函数的API,它说它具有三个参数:aCommandName,aShowDefaultUI,aValueArgument。

API对第一个和第三个参数的描述非常清楚,但是我不确定第二个参数的含义。

这就是API所说的:

aShowDefaultUI:一个布尔值,指示是否应显示默认用户界面。Mozilla中未实现此功能。

说“默认用户界面”是什么意思?

作为参考,我正在使用element.execCommand()创建自己的WYSIWYG Web文本编辑器,该编辑器只需要在Google Chrome中运行即可。

javascript wysiwyg client-side rich-text-editor web

9
推荐指数
1
解决办法
553
查看次数

当调用没有目标元素的 addEventListener 时,它默认为哪个元素?

addEventListener("load", run);

function run() {    //code }
Run Code Online (Sandbox Code Playgroud)

当我在网络浏览器中尝试时,上面的代码似乎可以工作。我的猜测是,这是因为如果使用 addEventListener 而不使用目标元素,它默认为 window 对象?

谁能证实这一点吗?

javascript dom client-side addeventlistener web

5
推荐指数
1
解决办法
1400
查看次数

在注入的脚本和Google Chrome扩展程序代码/内容脚本之间传递邮件的最安全方式是什么?

定义: 请从一开始就注意到,通过"注入脚本","扩展代码"和"内容脚本",我将使用此问题的优秀第一个答案中提供的定义.

假设:如果我在注入的脚本(在Web区域中)直接执行机密信息,那么处理机密信息的安全性就低于我在内容脚本和扩展代码的chrome://区域内执行机密信息的安全性.因此,我应该使用消息传递将机密信息从Web区域发送到chrome://区域以便进行处理.

问题:我正在构建Google Chrome扩展程序,我需要对从我注入的脚本派生的敏感用户数据运行一些操作.有问题的数据是保密的,我必须尽我所能确保除了扩展用户之外,任何人都看不到它,直到我对它进行操作.可以用于在注入的脚本和扩展代码/内容脚本之间传递消息的3种技术(定义如下)中最适合此目的的技术?

我对可用于在注入的脚本和扩展代码/内容脚本之间传递数据的3种不同技术的理解:

  1. 对于在注入的脚本和扩展代码(例如后台页面)之间传递消息,可以使用chrome.runtime API.

  2. 对于在注入的脚本和内容脚本之间传递消息,可以使用window.postMessage.

  3. 在注入的脚本和内容脚本之间传递消息的另一种方法是通过document.dispatchEvent(CustomEvent).

我的理解是方法1.不能用于注入脚本和内容脚本之间的消息传递,而方法2和3.不能用于注入脚本和扩展代码之间的消息传递(除非消息由内容转发)脚本,例如,背景页面).

javascript security google-chrome message-passing google-chrome-extension

5
推荐指数
1
解决办法
330
查看次数

协议JSON(PSON)与协议缓冲区

在查看ProtoBuf.js的文档之后,我才发现PSON,这看起来像是一项了不起的创新。

在文档中说:

PSON允许生成比ProtoBuf还要小的协议,但必须明智地使用它。

我刚刚阅读了PSON文档,但不确定ProtoBuf.js文档的作者为什么说PSON来了

以必须明智地使用它为代价。

有人可以解释为什么会这样吗?在我看来,PSON看起来是协议缓冲区的高级格式。

javascript serialization json protocol-buffers deserialization

5
推荐指数
1
解决办法
567
查看次数

jQuery 的 .parents() 方法的纯 JavaScript 等价物是什么?

对于此类问题,我深表歉意,但我无法在您可能不需要 jQuery或其他任何在线网站上找到答案,我真的很想知道:

jQuery 的 .parents() 方法的纯 JavaScript 等价物是什么?

例如,知道如何在纯 JavaScript 中执行此操作会很棒:

jQuery(element).parents('.className');
Run Code Online (Sandbox Code Playgroud)

javascript jquery code-translation

4
推荐指数
1
解决办法
1万
查看次数

使用Google Chrome扩展程序导入/导出JSON文件?

我现在正在创建Google Chrome扩展程序,我想知道它是否可以创建JSON文件以进行下载(导出)并创建一个按钮,用户可以在其中打开扩展程序并解析他们已保存的JSON文件他们的本地文件系统或USB记忆棒(导入)?

从本地文件系统解析每个JSON只需要读取每个键值对并对数据执行某些操作.它只需要处理字符串,所以没有什么复杂的.

**编辑:**我的问题不是这个问题的重复,因为我对更改用户的下载路径不感兴趣.我想要的是让他们在征得他们的同意后,将文件下载到他们的正常下载目录(Filesaver.js可以做到).另外,该帖子没有说明导入.

javascript json google-chrome google-chrome-extension google-chrome-app

3
推荐指数
1
解决办法
3826
查看次数

有没有办法利用JavaScript工厂函数中使用原型方法的性能优势?

我正在寻找以类似于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 performance factory prototype factory-pattern

1
推荐指数
1
解决办法
362
查看次数

如何更改网站JavaScript代码中的变量值?

如何更改网站JavaScript代码中的变量值?

我想知道,因为我现在正在建立一个网站,作为代码的一部分,我有一个变量,其价值对网站的功能有重要影响.因此,我希望知道某人如何能够改变这一价值(即使它只影响该用户所看到的网站).

我对学习如何在Google Chrome中执行此操作特别感兴趣.

javascript debugging google-chrome breakpoints google-chrome-devtools

-1
推荐指数
1
解决办法
2347
查看次数