Итак, я пытаюсь использовать chrome:// URI в своем дополнении, и я хочу использовать на нем page-worker, используя метод доверенного содержимого сценариев, однако, похоже, это не работает, когда я жестко кодирую URI, chrome://<package name>/<part>/<file>
; однако это работает, когда я использую self.data.url('filename'). Я хочу использовать chrome:// URI, потому что я использую GUID вместо стиля электронной почты в качестве идентификатора надстройки, а также я не хочу использовать ресурс: // URI.
Сценарий контента
addon.port.emit('hi');
HTML
<html>
<head>
<meta charset="UTF-8">
<title>Gaia Utils Settings</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="chrome://gaiascripts/content/dropdown.min.js"></script>
<script type="text/javascript" src="chrome://gaiascripts/content/settings.dev.js"></script>
<script type="text/javascript" src="chrome://gaiascripts/content/test.dev.js"></script>
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="css/settings.css" rel="stylesheet" type="text/css">
<link href="css/poststyle.css" rel="stylesheet" type="text/css">
</head>
<body>
<nav id="navbar_header" class="navbar navbar-blue navbar-static-top"></nav>
<div id="content_wrapper" class="container">
<div id="content_padding" class="container"></div>
</div>
<footer class="footer"></footer>
</body>
</html>
main.js
var PageWorker = require("sdk/page-worker");
PageWorker.Page({
contentURL: "chrome://gaiautils/content/settings.dev.html",
onMessage: function(message) {
console.log(message);
}
});
Я знаю, что могу использовать page-mod и прикреплять к нему скрипты, но я бы предпочел вызывать скрипты из файла и иметь возможность взаимодействовать с основным кодом дополнения. Итак, есть ли способ, чтобы я мог получить свой пирог и съесть его - используя жестко закодированный URI chrome:// в сочетании с вызовом сценариев из файла HTML, при этом имея возможность связывать эти сценарии с основным. js-файл?