javascript - 对 Ember 应用程序进行反射(reflection)/内省(introspection)以查找特定模型的实例

标签 javascript ember.js reflection google-chrome-extension introspection

首先,我不想了解有关 Ember 的一切。我只想在现有的 Ember 应用程序上使用它来提取有关应用程序状态的信息。

我正在开发一个 Chrome 扩展程序,让用户可以从 Vine 网站下载“原始”Vine 视频。

Vine 基本上是一个 Ember 应用程序。您可以轻松地使用 Ember Inspector 扩展来内省(introspection)应用程序,并从应用程序状态深处手动提取视频 URL。

似乎没有可靠的方法仅使用 DOM 来提取这些 URL,因为 Vine 使用“blob URL”。所以我想的是,我会做一些类似于 Ember Introspector 正在做的事情,在应用程序上使用反射/内省(introspection)。

如何从内容脚本访问 Ember 应用程序(及其状态)?

最佳答案

根据评论,您对 Chrome 扩展相当熟悉,您的问题可以归结为“Ember Inspector 如何在高级别上工作”。

同样,从评论中可以明显看出,Ember Inspector 采用了一种有时称为“注入(inject)脚本”或“页面级脚本”的技术。

内容脚本可以插入 <script>标记到页面中,这将违反 isolated context内容脚本驻留在页面上下文中并将在页面上下文中执行。因此,您可以访问 Ember 的所有“内部”:您现在处于相同的 JS 上下文中。您可以查看this question了解注入(inject)此类脚本的方法。

剩下的问题是如何在注入(inject)的脚本和内容脚本之间进行通信,因为注入(inject)的脚本无法再访问 Chrome API。例如,可以使用 custom events 来完成此操作。 .

关于javascript - 对 Ember 应用程序进行反射(reflection)/内省(introspection)以查找特定模型的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35161714/

相关文章:

javascript - jQuery .show();不在代码中工作,但在控制台中工作?

javascript - 如何在 Handlebars 表达式中包含 ember js 辅助函数

c# - 如何初始化对象属性

python - 检测类实例变量值中的重复项

javascript - 解析服务器中没有这样的文件或目录 - 云代码

javascript - 更改联系表中的验证要求

javascript - Emberjs 过滤选择集合更新

forms - 使用 emberjs 编辑表单时的最佳实践

java - 为什么 getAnnotatedParameterTypes 看不到数组类型的注释?

javascript - 仅使用 javascript 和 CSS 改变元素外观