Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有什么钩子可以用来将模板和功能从Chrome扩展干净地注入到Ember应用程序中?_Javascript_Ember.js_Google Chrome Extension_Ember Data - Fatal编程技术网

Javascript 有没有什么钩子可以用来将模板和功能从Chrome扩展干净地注入到Ember应用程序中?

Javascript 有没有什么钩子可以用来将模板和功能从Chrome扩展干净地注入到Ember应用程序中?,javascript,ember.js,google-chrome-extension,ember-data,Javascript,Ember.js,Google Chrome Extension,Ember Data,我是一个开源团队的一员,这个团队很快就走到了一起。我们都使用一个用于预算编制的应用程序,它过去一直是一个桌面应用程序。他们刚刚发布了一个全新的重写版本,现在在网上发布了一个Ember应用程序 当然,与任何重写一样,许多功能都没有被削减到发布版,超级用户非常不安。就我个人而言,我喜欢一些没有的功能,但我没有抱怨,而是决定做一个Chrome扩展,添加我想要的功能 这已经被证明是非常流行的,但目前我们正在做的主要是微小的表面更新和CSS攻击。当我们想要注入DOM元素或类似元素时,我们依赖于如下脆弱的黑

我是一个开源团队的一员,这个团队很快就走到了一起。我们都使用一个用于预算编制的应用程序,它过去一直是一个桌面应用程序。他们刚刚发布了一个全新的重写版本,现在在网上发布了一个Ember应用程序

当然,与任何重写一样,许多功能都没有被削减到发布版,超级用户非常不安。就我个人而言,我喜欢一些没有的功能,但我没有抱怨,而是决定做一个Chrome扩展,添加我想要的功能

这已经被证明是非常流行的,但目前我们正在做的主要是微小的表面更新和CSS攻击。当我们想要注入DOM元素或类似元素时,我们依赖于如下脆弱的黑客:

(function checkCreditBalances() {

    if ( typeof Em !== 'undefined' && typeof Ember !== 'undefined' && typeof $ !== 'undefined' && $('.is-debt-payment-category.is-master-category').length ) {
            // Do stuff here with thing
    }
}

setTimeout(checkCreditBalances, 300);
)();
当我阅读Ember文档时,它总是谈论在构建实际应用程序时要做什么。我不是,所以创建应用程序时的调试标志对我没有帮助。我没有建立模板等。余烬检查员不承认这是一个余烬应用程序,因为它已经是一个生产建设

我需要能够更深入(但安全)地连接到应用程序中,以添加更高级的功能。因此:

  • 有没有什么内部钩子可以告诉我们什么时候呈现组件,它是什么,如果它是我们想要的,我们就有机会向其中注入DOM元素?或者替换实例化时使用的模板?还是添加事件处理程序

  • 是否有一种清晰的方法来判断应用程序何时加载,我们可以在上面注入逻辑

  • 有没有办法为整个应用程序替换某个组件?这个特定的应用程序似乎在window上同时定义了Em和Ember,我不知道为什么,因为两者似乎都包含非常相似的对象

  • 有没有一种好方法可以将单击处理程序(或一般的事件处理程序)附加到组件

  • 如何与来自外部余烬的余烬数据交互?是一样的,还是我应该记住什么?我知道我可以用Ajax调用进行复制,但我假设Ember数据正在进行一些缓存和其他功能,如果可能的话,我希望利用应用程序已经对其后端进行的调用

基本上,有人能给我一些关于如何从Chrome扩展向Ember应用程序注入内容的建议吗


谢谢

伊纳布!不管怎样,我接受@blessenm的建议,最好看看余烬论坛。@Casey,不幸的是,我在那里试过了,但没有得到回应。我会留意那边,看看能不能得到帮助。