- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我在gitter和github讨论板以及wiki页面中进行了搜索,但仍然没有任何进展..
所以我第一次在这里问这个问题......:
最后也是最好的事情是我尝试将对象暴露给 javascript 范围。 https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#Expose_dotNET
好的,这适用于字符串类型对象。但我有一个复杂的对象,里面有几个字符串数组。
我想保留 javascript 变量,让我们在浏览器生命周期中将其称为 var _myFilters 值。
我了解cef扩展,在那里我记得这句话:
Extensions Extensions are like window bindings except they are loaded into the context for every frame and cannot be modified once loaded. The DOM does not exist when an extension is loaded and attempts to access the DOM during extension loading will result in a crash. Extensions are registered using the CefRegisterExtension() function which should be called from the CefRenderProcessHandler::OnWebKitInitialized() method.
引自网站:https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration
所以我认为这是创建全局 javascript 变量“_myFilters”的最佳位置。它应该可以在每个浏览器选项卡中访问,但我尝试了它,并看到它(引用:“_myFilters”)在每次页面重新加载时都会丢失值。
注册对象是一个选项,但它不太适合我复杂的 JavaScript 对象 (_myFilters) ..
browser.RegisterJsObject("bound", new BoundObject());
我尝试过,但只适用于字符串、整数等。
我计划公开“对象”(引用:_myFilters)数据类型,但这一次,浏览器崩溃了。
所以问题是:在浏览器 loadstart、load end、beforebrowse 方法上执行 javascript 文件的文件中使用全局变量的最佳方式是什么?
ps:我想要这个,因为创建这个 _myFilters 对象是一项需要一些时间(大约 3 秒)的工作。我希望将其值包含在我的全局值中,这样我就可以在浏览器生命周期中使用它。
ps2:_myFilters 的类型
最佳答案
如果您希望即使在浏览器进程终止时也可以存储变量,那么我建议您使用像chrome.storage这样的存储api .
如果全局变量只需要在浏览器进程的整个生命周期中维护,我认为您可以在 background page 中设置一个变量
It exists for the lifetime of your extension, and only one instance of it at a time active.
另一种选择是使用 Event Pages 。和后台页面类似,设置persistent
即可false
在manifest.json中。
Event pages are loaded only when they are needed. When the event page is not actively doing something, it is unloaded, freeing memory and other system resources.
然后你也可以在事件页面声明你的全局变量,添加监听 runtime.onSuspend使用 chrome.storage.local.get()
存储全局变量的状态当事件页面即将卸载时。并且在加载事件页面时监听其他事件处理程序,这取决于您的需要,可能是 browserAction.onClicked或runtime.onMessage ,使用 chrome.storage.local.set()
恢复全局变量状态
关于Cef 扩展脚本的 Javascript 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35746271/
我的应用程序中有一个 settings.php 页面,它使用 $GLOBALS 来存储网络应用程序中使用的配置。 例如,他是我使用的一个示例设置变量: $GLOBALS["new_login_page
我正在尝试编译我们在 OS 类上获得的简单操作系统代码。它在 Ubuntu 下运行良好,但我想在 OS X 上编译它。我得到的错误是: [compiling] arch/i386/arch/start
我知道distcp无法使用通配符。 但是,我将需要在更改的目录上安排distcp。 (即,仅在星期一等“星期五”目录中复制数据),还从指定目录下的所有项目中复制数据。 是否有某种设计模式可用于编写此类
是否可以在config.groovy中全局定义资源格式(json,xml)的优先级,而不是在每个Resource上指定?例如,不要在@Resource Annotation的参数中指定它,例如: @R
是否有一些简单的方法来获取大对象图的所有关联,而不必“左连接获取”所有关联?我不能只告诉 Hibernate 默认获取 eager 关联吗? 最佳答案 即使有可能有一个全局 lazy=false(谷歌
我正在尝试实现一个全局加载对话框...我想调用一些静态函数来显示对话框和一些静态函数来关闭它。与此同时,我正在主线程或子线程中做一些工作...... 我尝试了以下操作,但对话框没有更新...最后一次,
当我偶然发现 this question 时,我正在阅读更改占位符文本。 无论如何,我回去学习了占位符。一个 SO 的回答大致如下: Be careful when designing your pl
例如,如果我有这样的文字: "hello800 more text 1234 and 567" 它应该匹配 1234 和 567,而不是 800(因为它遵循 hello 的 o,这不是一个数字)。 这
我一直在尝试寻找一种无需使用 SMS 验证系统即可验证电话号码(Android 和 iPhone)的方法。原因纯粹是围绕成本。我想要一个免费的解决方案。 我可以安全地假设 Android 操作系统会向
解决此类问题的规范 C++ 设计模式是什么? 我有一些共享多个类的多线程服务器。我需要为大多数类提供各种运行时参数(例如服务器名称、日志记录级别)。 在下面的伪 C++ 代码中,我使用了一个日志记录类
这个问题在这里已经有了答案: Using global variables in a function (25 个答案) 关闭 9 年前。 我是 python 的新手,所以可能有一个简单的答案,但我
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Does C++ call destructors for global and class static
我正在尝试使用 Objective-C 中的 ArrayList 的等价物。我知道我必须使用 NSMutableArray。我想要一个字符串列表 (NSString)。关键是我的列表应该可以从我类(c
今天刚开始学习 Android 开发,我找不到任何关于如何定义 Helper 类或将全局加载的函数集合的信息,我会能够在我创建的任何 Activity 中使用它们。 我的计划是创建(至少目前)2 个几
为什么这段代码有效: var = 0 def func(num): print num var = 1 if num != 0: func(num-1) fun
$GLOBALS["items"] = array('one', 'two', 'three', 'four', 'five' ,'six', 'seven'); $alter = &$GLOBALS
我想知道如何实现一个可以在任何地方使用您自己的设置的全局记录器: 我目前有一个自定义记录器类: class customLogger(logging.Logger): ... 该类位于一个单独的
我需要使用 React 测试库和 Jest 在我的测试中模拟不同的窗口大小。 目前我必须在每个测试文件中包含这个beforeAll: import matchMediaPolyfill from 'm
每次我遇到单例模式或任何静态类(即(几乎)只有静态成员的类)的实现时,我想知道这是否实际上不是一种黑客行为,因此只是为了设计而严重滥用类和实例的原则单个对象,而不是设计类和创建单个实例。对我来说,看起
这个问题在这里已经有了答案: Help understanding global flag in perl (2 个回答) 7年前关闭。 my $test = "There was once an\n
我是一名优秀的程序员,十分优秀!