Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Quick frame removing

3 views
Skip to first unread message

sarcedo

unread,
Dec 24, 2009, 10:10:02 AM12/24/09
to
Hi,

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);

Eric Jung

unread,
Dec 25, 2009, 2:18:25 AM12/25/09
to dev-ext...@lists.mozilla.org
On Thu, Dec 24, 2009 at 10:10 AM, sarcedo <lob...@o2.pl> wrote:


> 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

sarcedo

unread,
Dec 26, 2009, 1:58:30 PM12/26/09
to

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.

0 new messages