I want to create a quick frame removing extension. After FF i started I
add a listeners for tab adding and content load.
The idea is to remove all frames from level higher then "iMaxLevel".
I was trying to use "event.stopPropagation" without any effect. The
second idea was to use "removeChild" but
"event.originalTarget.wrappedJSObject.parentNode” is null.
My code:
var FrameControl = {
iMaxLevel: 1,
iMaxFrames: 5,
init: function(){
var container = gBrowser.tabContainer;
container.addEventListener("TabOpen", FrameControl.onTabAdded, false);
},
onTabAdded: function(event){
var browser = event.target.linkedBrowser;
browser.addEventListener("DOMContentLoaded",
FrameControl.onPageLoad, true);
},
onPageLoad: function(event){
if (FrameControl.iMaxLevel > -1) {
if (event.originalTarget instanceof HTMLDocument) {
var doc = event.originalTarget;
if (event.originalTarget.defaultView.frameElement) {
var iLevel = 0;
while (doc.defaultView.frameElement) {
doc = doc.defaultView.frameElement.ownerDocument;
iLevel++;
}
if(iLevel > FrameControl.iMaxLevel){
//Here should be a frame removing code
}
}
}
}
}
}
window.addEventListener('load', function(){
var container = gBrowser.tabContainer;
container.addEventListener("TabOpen", FrameControl.onTabAdded, false);
}, false);
> I was trying to use "event.stopPropagation" without any effect.
>
>
I've found that, depending on conditions which I no longer remember, you
often need to call both event.stopPropagation() and event.preventDefault().
You also need to return false from the event handler.
Eric
I�ve tried to call both event.stopPropagation() and
event.preventDefault() without any results. I�ve also added false return
from the event handler and still nothing.