>

Cu.import 를 사용하는 간단한 확장명이 있습니다   자바 스크립트 코드 모듈 을 가져 오려면 그러나 확장 프로그램을로드하면 다음 오류가 발생합니다.

Cu is not defined

사용하려는 코드는 다음과 같습니다.

Cu.import("resource://gre/modules/MatchPattern.jsm");
Cu.import("resource://gre/modules/BrowserUtils.jsm");
var regExArray = [];
var myArray = ["facebook.com", "google.com"];
var myURL="http://www.google.co.uk/?gfe_rd";
for (var x=0; x<myArray.length; x++)
{   
    console.log("loop: "+x);
    var match = new MatchPattern(/(http:\/\/)(.*\.)*(myArray[x])(\/.*)*(\/)*/);
    log("match result is: "+match.matches(myURL));     
}//end for loop

Cu 를 정의하는 방법을 알고 있습니다   require , WebExtesnions에서 어떻게 정의 할 수 있습니까?

  • 답변 # 1

    Components아무것도사용할 수 없습니다  WebExtensions에서

    구식 Firefox 확장 유형의 경우 Components  Firefox에서 객체는 저수준 기능에 대한 액세스를 제공했습니다. 일반적인 별칭은 다음과 같습니다.

    Cc = Components.classes

    Ci = Components.interfaces

    Cu = Components.util

    Cr = Components.results

    Cm = Components.manager

    components = Components

    Add-on SDK에서 이것들은 Chrome Authority 설명서에 설명되어 있으며

    var {Cc, Ci, Cu, Cr, Cm, components} = require("chrome");
    
    

    와이즈 위즈  WebExtensions에 없습니다

    이러한 저수준 기능에 대한 액세스는WebExtensions에 없습니다. 코드에서 제거하고 잊어 버리십시오. 연결할 수 없으므로 연결된 것을 사용하지 마십시오. Components 가 제공하는 저수준 기능에 대한 액세스 제거  WebExtensions로 이동하는 구체적인 이유 중 하나입니다.

    MDN의 페이지에이 페이지가 표시되면 해당 페이지는 WebExtensions가 아니므로 WebExtensions 개발시 무시해야합니다.모든 페이지 상단에해당 페이지에 설명 된 기술 대신 WebExtensions를 사용해야한다는 큰 경고가 표시됩니다. 현재 경고 (2017-06-17)는 다음과 같습니다.

    WebExtensions가 아닌 이전 확장에 존재하는 것이 필요하면 WebExtensions 실험을 시도하십시오

    WebExtensions Experiment를 구성하여 WebExtensions의 기능을 확장 할 수 있습니다. 추가 기능 개발자가 Firefox에 포함하도록 제안 된 WebExtensions 용 새 API를 작성할 수 있도록하기위한 것입니다. 그러나 이러한 제안이 실제로 Firefox에 통합 될 것이라는 보장은 없습니다.

    Components

관련 자료

  • 이전 자바 스크립트로 수업 만들기
  • 다음 javascript - 모든 TypeScript 파일을 상대적으로 인접한 디렉토리로 변환