Extjs: изменить ссылку (<a>) «по клику» - PullRequest
5 голосов
/ 08 апреля 2011

Я создал HTML ссылку (<a>), используя Extjs BoxComponent , и она работает просто отлично.Но вместо фиксированного URL-адреса, связанного со ссылкой, я хочу иметь возможность обновлять свойство href, когда пользователь щелкает ссылку.

В коде ниже href обновляется, когда пользовательщелкните ссылку, и я могу проверить это с помощью FireBug на элементе HTML.Но на открытии новой страницы отсутствует мое дополнение к href.

Вопрос : слишком поздно изменять href на onClick или это потому, что я изменяю href неправильным образом?

Код :

xtype: 'box',
html: '<a href="www.google.com" target="_blank">Link to google</a>',        
listeners: {
    render: function (c) {          
        c.getEl().on(
            'click',
            function() {
                this.el.child('a', true).href = 'www.google.com/#q=' + some_dynamic_value;
            },
            c,
            { stopEvent: false }
        );
    }
}

Ответы [ 2 ]

3 голосов
/ 09 апреля 2011

Похоже, что это может работать при использовании события mousedown вместо события click.

Выезд: http://jsfiddle.net/sadkinson/rF5TQ/15/

1 голос
/ 08 апреля 2011

Вполне возможно, что к тому времени, когда произошел щелчок, изменение URL-адреса внутри него уже слишком поздно. Разве не возможно, что то, что заставляет вашу ссылку нуждаться в обновлении, может быть сделано, когда она изменена, вместо того, чтобы ждать, пока пользователь щелкнет ссылку?

Я предполагаю, что ряд браузеров проигнорируют это просто потому, что это будет эффективный способ быть злонамеренным. Помещение ссылки с надписью «google», а затем перенаправление вас на какой-нибудь вирусный сайт и т. Д., Так как даже самый разумный пользователь, который хочет посмотреть, куда его приведет ссылка, увидит Google, пока не станет слишком поздно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...