Question: Notice that **this question is only about ExtJS**, I know how to do the same with basic HTML.

I'm creating a button that is placed over each grid which is "save as excel". Obviusly, I need to open a new window and I want that the url will take as params the filters (and sorting) that I were using on the grid.

Getting filters and sorting is not hard, I can fetch them directly from store, the problem is that **I don't know how to open the window without getting blocked by a popup blocker**.
In html, I should have used a form with target blank, added 2 hidden fields with values = filters array and sort array. Then when you click on the button, submit is run. This will open a new page with params passed to it.

**I don't know how to enclose my button in an invisible form (I always used form.Panel)**, expecially I noticed that form.Panel doesn't have any target property, so I don't know where I could set my \_blank value.

Also, **are there any possibility to create a button in ExtJS that has target=\_blank as value?** Obviusly it should be built through an A tag.

Notice that the button actullay is just simple as:

```
var excelPrint = Ext.create('Ext.Action', {
  cls: 'icon-excel',
  handler: function() {
    // TODO: Open a new window and filter it same as current grid, the filtered data is an xlsx
    alert("Funzionalità inattiva");
  }
});

```

So basically I have no code at the moment. Well I have all the grid built, with remote filtering and so on but it's useless for the purpose of building this

Answer: 
If you want to make a GET request then of course a simple button/link with `href` and `target` attributes will do. Here is a little working example:

```
Ext.create('Ext.Button', {
    text: 'Click me',
    href: 'http://google.com',
    target: '_blank',
    renderTo: Ext.getBody()
});

```

The [href](http://docs.sencha.com/ext-js/4-0/#!/api/Ext.button.Button-cfg-href) config is documented but the target is not, however if you look at the [source code](http://docs.sencha.com/ext-js/4-0/source/Button2.html) (see renderTpl and getTemplateArgs) you'll see that it works as expected.

If you want a POST request then you are right about enclosing your button (or the maybe the grid too if that's more convenient for you) in a FormPanel that also supports the `target` attribute and can work as a regular form (synchronous request, no XHR) if you set `standardSubmit` to true.

Note that if you need an action that triggers file download, you don't really need to open a new window (explicitly or via `target="blank"`), you can use your current browser window, the browser will just start downloading a file (if the MIME type is appropriate) without actually navigating away from your current page.

Let me know if you have further questions.
Here's what i did. I used a normal extjs window and used the `html` config option and put an iframe inside it like so

```
Ext.Window({
//other config
html: String.format('<iframe id="report" src="rest/service/report?accountId={0}&caseId={1}" width="780" height="580" />', accountId, caseId)
});

```

That solved the pop up blocker problem and it's so much easier to pass parameters.