Quantcast
Channel: My Take On It
Viewing all articles
Browse latest Browse all 10

How to find out the ExtJs component behind a specific element on your html page

$
0
0

How to find out the ExtJs component behind a specific element on your html page

The Problem

While creating web pages using the ExtJs framework, we do not directly create the html markup. ExtJs is responsible for creating the markup based on the components we define.

But after everything is rendered and you are looking at a particular element on the page, it’s hard to tell which extjs component has rendered that markup. This becomes more apparent when we are dealing with a complex web application with dozens of components defined in different js files.

If we are looking at the html output and wondering which component needs to be modified to change the look of it, it’s not that easy.

The Solution

Here is an easy way to find that out. Browse to your webpage in Chrome. Then right click on the element in question, and click on “Inspect Element”.

Untitled_Clipping_060514_114502_PM

This will open up the Elements tab in the Chrome debugging Tool with that particular element markup highlighted.

Screenshot_060514_114712_PM

Now go to the console tab and type this command: Ext.getCmp($0.id). It will reveal the ExtJs component in the console.

Screenshot_060514_114900_PM

You can expand the object to see all it’s properties and easily identify it. Note that a typical component renders a bunch of html elements. This trick will not work if you are on a child level element. So if this command does not give you any result, click on the parent html element to highlight it on the elements tab. And run this command in the console again. You might have to keep traversing the markup this way a few times as most component render a deeply nested markup.

How it works

$0 is a chrome trick to get the javascript object for a given html element. When you do $0.id, that reveals the id of the element. Now, ExtJs provides a way to select an element by it’s markup id: Ext.getCmp(‘idofelement’);

So running Ext.getCmp($0.id) means select the ext component whose id is the same as the id of the selected html element.

So there you go. Using this trick you no longer have to second guess where your markup is coming from. Hopefully, this will save you a bunch of time like it does for me. Happy debugging!!

 


Viewing all articles
Browse latest Browse all 10

Latest Images

Trending Articles



Latest Images