Я разработал надстройку для связи со смарт-картой. Я использовал winscard.dll
и его функции (такие как создание, подключение, передача).
//less-privileged scope like jsp
var element = document.createElement("MyExt1");
document.documentElement.appendChild(element);
var evt = document.createEvent("Events");
evt.initEvent("SCardConnect", true,false);
element.dispatchEvent(evt);
var CardHandle = element.getAttribute("CardHandle");
alert(CardHandle);
и
//privileged scope which exist in my add-on
.
.
.
var MyExtension1 = {
Connect : function(evt){
...
evt.target.setAttribute("CardHandle", CH.toString());
var doc = evt.target.ownerDocument;
var AnswerEvt = doc.createElement("SCardConnect");
doc.documentElement.appendChild(AnswerEvt);
var event = doc.createEvent("HTMLEvents");
event.initEvent("ConnectEvent",true,false);
AnswerEvt.dispatchEvent(event);
}
}
.
.
.
document.addEventListener("SCardConnect", function(e){myExtension1.Connect(e);}, false, true);
После небольшого вступления, это моя проблема:
Когда я устанавливаю надстройку в Firefox и шаг за шагом отлаживаю код через F10, он работает нормально, однако, если я хочу запустить внешний скрипт без перерыва (без отладки), он возвращает null
, когда я получаю атрибуты.
Это основанный на событиях подход к вызову дополнительной функции из внешней функции скрипта. Существует еще один подход, в котором используется export function
, и у меня возникает следующая проблема: файл">https://stackoverflow.com/questions/32450103/вызов-a-firefox-add-on-function-from-an-external-javascript-file
export function
в js-ctypes, однако это не сработало. Как я спросил в stackoverflow.com/questions/32688218/. - person Hosein Aqajani   schedule 07.10.2015child_process
: developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_API/ будет ли это работать? - person Noitidart   schedule 08.10.2015export function
и особенно о моем этом сообщении: stackoverflow.com/questions/32688218/ - person Hosein Aqajani   schedule 10.10.2015alert()
после отправки команды, она будет работать правильно. Сначала я думаю, что это требует некоторой задержки, поэтому я комментируюalert()
и ставлю задержку после отправки, но установка задержки не работает. Что произойдет, если я поставлю предупреждение после функции отправки? - person Hosein Aqajani   schedule 13.10.2015initEvent
устарел, однако он использовал его в developer.mozilla.org/en-US/Add-ons/Code_snippets/ . - person Hosein Aqajani   schedule 13.10.2015