【问题标题】:Chrome extension convert from Angular to Angular2Chrome 扩展从 Angular 转换为 Angular2
【发布时间】:2017-12-26 19:03:46
【问题描述】:

这不是https://stackoverflow.com/a/21049890/439130的副本
那个人通过 解释它,我要求 (又名Angular2+)

下面的代码是通过 编写的Chrome 扩展程序的主要部分,它改变了页面的内容 并注入了。我必须将其转换为

查看了下面的链接,但它们都针对/创建了自己的窗口,而不使用基本内容窗口。

希望获得一个清晰的示例,演示如何在 Chrome 扩展的加载页面中手动引导 (2+)

index.html

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">

<head>
    <link rel="stylesheet" href="/css/app.css" />
</head>

<body>
    <h1>Hello world!</h1>

    <script src="/lib/jquery/jquery.min.js"></script>
    <script src="/lib/angular/angular.min.js"></script>
    <script src="/lib/angular-route/angular-route.min.js"></script>
    <script src="/lib/angular-resource/angular-resource.min.js"></script>
    <script src="/lib/angular-cookies/angular-cookies.min.js"></script>
    <script src="/scripts/app.js"></script>
</body>

</html>

app.js

function DoWork() {
    var url = chrome.extension.getURL("/areas/body.html");
    $('html').load(url);

    chrome.runtime.sendMessage({ directive: "inject-angular" }, function(response) {
        console.log("retrieving response" + response);
        // Load();
    });
}

$(document).ready(DoWork);

background.js

chrome.runtime.onMessage.addListener(
    function(request: any, sender: chrome.runtime.MessageSender, sendResponse: Function): void {
        switch (request.directive) {
            case "inject-angular":
                var queryInfo: chrome.tabs.QueryInfo = { currentWindow: true, active: true };
                chrome.tabs.query(queryInfo, function(tabs): void {
                    var tabId: number = tabs[0].id;
                    console.log("executing code");
                    chrome.tabs.executeScript(tabId, {
                        code: "window.name = 'NG_DEFER_BOOTSTRAP!' + window.name;"
                    }, function() {
                        console.log("executing angular");
                        chrome.tabs.executeScript(tabId, {
                            file: "/lib/angular/angular.min.js"
                        }, function() {
                            console.log("executing angular-filter");
                            chrome.tabs.executeScript(tabId, {
                                file: "/lib/angular-filter/angular-filter.min.js"
                            }, function() {
                                console.log("executing controller");
                                chrome.tabs.executeScript(tabId, { file: '/scripts/standalone/controller.js' }, function() {
                                    console.log("sending response.");
                                    sendResponse();
                                });
                            });
                        });
                    });
                });
                break;
            default:
                console.log("Unmatched request of '" + request + "' from script to background.js from " + sender + " :: [" + sender.tab.id + "] " + sender.tab.url);
                console.log(request);
                sendResponse();
        }
    }
);

【问题讨论】:

    标签: angularjs angular angularjs angularjs angular angular angular google-chrome-extension


    【解决方案1】:

    angularjs 1.x 被 js 欺骗是一项非常困难的任务,因此使用任何第三方 API(如 chrome API)进行开发都很容易。但在 angular2 中,它的基本操作系统类型脚本,所以它的构建和调试非常有缺陷。 (我不是说不可能)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多