2012-11-14 2 views

Antwort

0

Chrome Extension kann nicht auf lokale Ressourcen zugreifen \ Dateien in irgendeiner Art und Weise es Funktionalität für die Sicherheit gelegt wird, gesagt hat, dass kann ich wissen, was zum Umleiten zu Lokalen URL (Being Erweiterung Web-Spread) bestimmter Grund ist

+0

Als eine Funktion, so jemand könnte eine Web-Anfrage an eine Javascript-Datei, die auf ihrem lokalen Computer war umleiten. Wenn dies der Fall ist, dann muss nur akzeptieren, dass es nicht getan werden kann. Danke – ranjez

4
redirectUrl : chrome.extension.getURL("hello.html") 

Ich habe wie oben, hallo.html im Erweiterungsordner gefunden.

+4

Ressourcen müssen im Manifestschlüssel web_accessible_resources aufgeführt sein, damit sie von Seiten außerhalb der Erweiterung geladen werden können. – accuya

-1

Um auf eine lokale Datei umzuleiten, habe ich einen Trick gemacht. Dies ist mein Code:

  1. Datei: background.js

    chrome.webRequest.onBeforeRequest.addListener(function(details) { 
        return { 
        redirectUrl : chrome.extension.getURL("index.html") 
        }; 
    }, { 
    urls : ["<all_urls>"] 
    }, ["blocking"]); 
    function r(tabId) { 
    chrome.tabs.update(tabId, { 
        "url": redirectUrl 
    }); 
    

    }

    chrome.extension.onRequest.addListener (function (Anfrage, Absender, sendresponse) {

    if (request.redirect) { 
         chrome.windows.getCurrent(function(w){ 
          chrome.tabs.query({windowId : w.id}, function(t){ 
           r(t.id); 
          }); 
         }); 
    } 
    sendResponse({ 
        redirected: redirectUrl 
    }); 
    

    });

  2. erstellen Datei index.html in Ihrer Erweiterung mit Inhalt:

    <html> 
    <head> 
        <title>Redirecting...</title> 
        <script type="text/javascript" src="redirect.js"></script> 
    </head> 
    <body > 
    </body> 
    

  3. Datei redirect.js erstellen:

    Funktionsanforderung() {
    chrome.extension.sendRequest ({redirect: true}, Funktion (rsp) {}); }

    document.addEventListener ('DOMContentLoaded', function() { Anforderung(); return false; });

+0

Auf diese Weise umgeleitete JavaScript-Seiten haben keinen Zugriff auf das 'Fenster' der Seite. – fakedrake

2
  1. Zunächst müssen Sie Ihre Datei im Erweiterungsordner setzen (oder in einem Unterordner des Erweiterungsordner).

  2. Anschließend müssen Sie es in der Manifestdatei als "web_accessible_resources" deklarieren.

Beispiel: Wenn die Erweiterung Ordner myext, und die Datei, die Sie verwenden möchten, ist "MyExt/path/to/file.html". Dann sollten Sie dies auf die Manifest-Datei hinzufügen:

"web_accessible_resources": [ 
    "path/to/file.html" 
] 

Im Allgemeinen kann jede Datei, die verwendet wird, außerhalb der Verlängerung sollte in der "web_accessible_resources" Array deklariert werden.

Hinweis, dass die Deklaration nur der relative Pfad der Datei im Erweiterungsordner ist.

Verwandte Themen