2016-11-21 3 views
-1

Ich möchte Xul-basierte Frame in einer meiner Firefox-Erweiterung erstellen. Der Rahmen sollte so aussehen https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/ui_frameNotwendigkeit, xul-basierten Frame in Firefox Erweiterung erstellen mit Xul erstellen

oder

wie unten Knoten js Code in xul verwenden:

var { Frame } = require("sdk/ui/frame"); 
var frame = new Frame({ 
    url: "./city-info.html" 
}); 

In node.js, seine Arbeit gut, aber ich weiß nicht, wie das gleiche schaffen Ding mit Xul. Jeder kann helfen?

danke im voraus.

+0

Es entweder zu viele mögliche Antworten sind, oder gute Antworten würden für dieses Format zu lang sein. Bitte [bearbeiten] Sie die Frage, um Details hinzuzufügen, um die Antwortmenge einzuschränken oder um ein Problem zu isolieren, das in einigen Absätzen beantwortet werden kann. – Makyen

+0

Alternativ ist dies eine Debugging-Frage ohne [mcve]. So oder so bitte [bearbeiten] Sie die Frage so, dass es möglich ist zu antworten. – Makyen

+0

danke für dein Feedback Makyen. Aber meine Frage ist einfach. Ich möchte nur einen Rahmen auf Firefox Browser mit Xul basierten Firefox Addon zeigen. In diesem Frame möchte ich eine URL öffnen. Ich habe auch eine Beispiel-URL angegeben, um die Ansicht besser zu verstehen. –

Antwort

0

Sie haben sehr wenig Details angegeben, was Sie wünschen. Wenn alles, was Sie wünschen, ist eine , in dem erstellen Sie HTML-Inhalte laden können, dann etwas entlang der Linien der folgenden tun so:

//The URL of the HTML you desire to load. 
let chromeUrl = '[Some URL here]'; 
//Whatever element you want the iframe placed under. 
let parentEl = document.getElementById('foo'); 

//* Overlay and bootstrap (from almost any context/scope): 
Components.utils.import('resource://gre/modules/Services.jsm');//Services 
let activeWindow = Services.wm.getMostRecentWindow('navigator:browser'); 
//*/ 
let mainDocument = activeWindow.document; 

//Create the <iframe> use 
//mainDocument for the XUL namespace. 
let iframeEl; 
if(options.useBrowser){ 
    iframeEl = mainDocument.createElement('browser'); 
} else { 
    iframeEl = mainDocument.createElement('iframe'); 
} 
iframeEl.id = id; 
iframeEl.setAttribute('src',chromeUrl); 
iframeEl.setAttribute("tooltip", "aHTMLTooltip"); 
iframeEl.setAttribute("autocompleteenabled", true); 
iframeEl.setAttribute("autocompletepopup", "PopupAutoComplete"); 
iframeEl.setAttribute("disablehistory",true); 
iframeEl.setAttribute('type', 'content'); 
parentEl.appendChild(iframeEl); 

Der obige Code von my answer to Firefox SDK Add-on with a sidebar on both the right and left at the same time genommen wurde, die Sidebars schafft. Eine Möglichkeit, wie diese Seitenleisten erstellt werden, besteht darin, dass sie eine enthalten.

0

Schließlich bekam ich die Antwort:

let chromeUrl = 'YOUR HTML PAGE URL'; 
         Components.utils.import('resource://gre/modules/Services.jsm');//Services 
         let activeWindow = Services.wm.getMostRecentWindow('navigator:browser'); 
         //*/ 
         let mainDocument = activeWindow.document; 

         let iframeEl; 
         iframeEl = mainDocument.createElement('iframe'); 

         iframeEl.id = "d"; 
         iframeEl.setAttribute('src',chromeUrl); 
         iframeEl.setAttribute("tooltip", "aHTMLTooltip"); 
         iframeEl.setAttribute("autocompleteenabled", true); 
         iframeEl.setAttribute("autocompletepopup", "PopupAutoComplete"); 
         iframeEl.setAttribute("disablehistory",true); 
         iframeEl.setAttribute('type', 'content'); 
         iframeEl.setAttribute('height', '32px'); 

         window.document.documentElement.appendChild(iframeEl); 
Verwandte Themen