diff --git a/content/resurrect-select-mirror.xul b/content/resurrect-select-mirror.xul
index 1d87a60..a6c1213 100644
--- a/content/resurrect-select-mirror.xul
+++ b/content/resurrect-select-mirror.xul
@@ -6,6 +6,7 @@
-
-
-
-
-
-
-
diff --git a/content/resurrect.js b/content/resurrect.js
index 0e05eef..62c4ff0 100644
--- a/content/resurrect.js
+++ b/content/resurrect.js
@@ -1,7 +1,6 @@
var resurrect={
originalDoc:null,
- disabled:false,
// // // // // // // // // // // // // // // // // // // // // // // // // // //
@@ -31,9 +30,9 @@ var resurrect={
},
attachClickEvent:function(event) {
- resurrect.disabled=false;
-
var contentDoc=event.target;
+ var contentWin=contentDoc.defaultView;
+
if (contentDoc.documentURI.match(/^about:neterror/)) {
contentDoc.getElementById('resurrect').addEventListener(
'click', resurrect.clickedHtml, false
@@ -41,6 +40,14 @@ var resurrect={
}
},
+ disableButtons:function(doc) {
+ var bs=doc.getElementById('resurrect')
+ .getElementsByTagName('xul:button');
+ for (var i=0, b=null; b=bs[i]; i++) {
+ b.setAttribute('disabled', 'true');
+ }
+ },
+
// // // // // // // // // // // // // // // // // // // // // // // // // // //
page:function(event) {
@@ -85,10 +92,13 @@ var resurrect={
},
clickedHtml:function(event) {
+ if ('true'==event.target.getAttribute('disabled')) {
+ return;
+ }
+
return resurrect.clickHandler(
event,
event.target.ownerDocument,
- event.target.ownerDocument,
event.target.ownerDocument.location.href
);
},
@@ -96,20 +106,20 @@ var resurrect={
clickedXul:function(event) {
return resurrect.clickHandler(
event,
- event.target.ownerDocument,
window.arguments[0],
window.arguments[1]
);
},
- clickHandler:function(event, ownerDoc, contentDoc, rawUrl) {
- if (resurrect.disabled) return;
- resurrect.disabled=true;
+ clickHandler:function(event, contentDoc, rawUrl) {
+ resurrect.disableButtons(event.target.ownerDocument);
// Run the actual code. After timeout for UI repaint.
setTimeout(
resurrect.selectMirror, 1,
- event.target.getAttribute('value'), ownerDoc, contentDoc, rawUrl
+ event.target.getAttribute('value'),
+ event.target.ownerDocument,
+ contentDoc, rawUrl
);
},
@@ -217,8 +227,6 @@ var resurrect={
// setTimeout avoids errors because the window is gone
setTimeout(window.close, 0);
}
- } else {
- resurrect.disabled=false;
}
}