Firefox 附加组件仅在调试状态下执行
Firefox add-on execute only in debugging state
我开发了一个与智能卡通信的插件。我已经使用了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 逐步调试代码时它工作正常,但是如果我想 运行 外部脚本不中断(不调试),它 returns null
当我获取属性时。
这是一种基于事件的方法,用于从外部脚本函数调用附加函数。还有另一种使用 export function
的方法,我遇到了以下问题:
您可能希望将 'var CardHandle = element.getAttribute("CardHandle");' 移动到一个新函数中,并在指定的时间间隔内检查其值是否有效。
var varTimer = setInterval(function(){ myTimer() }, 1000);
function myTimer() {
var CardHandle = element.getAttribute("CardHandle");
if(CardHandle is valid) stopTimer();
}
function stopTimer() {
clearInterval(varTimer);
}
我开发了一个与智能卡通信的插件。我已经使用了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 逐步调试代码时它工作正常,但是如果我想 运行 外部脚本不中断(不调试),它 returns null
当我获取属性时。
这是一种基于事件的方法,用于从外部脚本函数调用附加函数。还有另一种使用 export function
的方法,我遇到了以下问题:
您可能希望将 'var CardHandle = element.getAttribute("CardHandle");' 移动到一个新函数中,并在指定的时间间隔内检查其值是否有效。
var varTimer = setInterval(function(){ myTimer() }, 1000);
function myTimer() {
var CardHandle = element.getAttribute("CardHandle");
if(CardHandle is valid) stopTimer();
}
function stopTimer() {
clearInterval(varTimer);
}