生成普通链接(<a href="...">) in ExtJS</a>

时间:2010-07-16 10:11:47

标签: javascript-events extjs hyperlink click

我在这里遇到一个非常简单的问题。

我想在前端生成一个普通的链接,但它似乎无法以某种方式工作。这是我用于生成链接的代码(该链接是一个按钮,在该按钮之前点击了一个带有指定URL的新窗口)。

{
  xtype: 'button',
  id: 'PrintTool',
  tooltip: 'Printer Friendly',
  iconCls: 'icon-printerFriendly',
  html: '<a href=\"http:\/\/www.google.at\">x<\/a>',
  listeners: {
    'click': function(button,event) {
      console.log(this);
      console.log(event);
      this.restoreClick();
      return true;
  }
}

}

当ExtJS渲染它所做的按钮时,我会向对象添加一个html属性,这是一个链接。

我可以看到与FireBug的链接。当我点击链接时,我得到了输出

    console.log(this);
    console.log(event);
控制台中的

所以事件被解雇了。但链接永远不会打开。

我认为这与从ExtJS停止的CLICK事件有关。

似乎尽管在Firebug中HTML中没有按钮,但传递给click事件的对象仍然是按钮。

所以我的问题是,如何在不设置xtype按钮的情况下在ExtJS中创建普通HTML。或者我如何生成普通链接。

我曾经在点击按钮后打开弹出窗口。弹出窗口被Chrome,IE和其他各种浏览器阻止,因此我必须使用带有URL的普通链接。

2 个答案:

答案 0 :(得分:4)

在ExtJS论坛中找到了我的问题的答案

使用LinkBut​​ton作为Animal编写的扩展名

http://www.sencha.com/forum/showthread.php?80639-Ext.LinkButton-A-button-class-which-renders-an-lt-a-gt-element./page3

答案 1 :(得分:1)

您还可以使用标签组件的html属性并从那里调用控制器函数。例如:

{xtype: 'label',
html: 'bla bla? <a href="#" onClick="javascript:appName.app.getController(\'myController\').showRegistration();">Register</a>'
}