#html #dom #extjs #hyperlink
#HTML #dom #extjs #гиперссылка
Вопрос:
Я создал 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 }
);
}
}
Ответ №1:
Похоже, это может сработать при использовании mousedown
события вместо click
event .
Проверьте: http://jsfiddle.net/sadkinson/rF5TQ/15 /
Комментарии:
1. Это выглядит неплохо, но я боюсь, что это может рассматриваться как дыра в безопасности (если поисковик ошибок прав насчет
click
события) и в конечном итоге будет закрыт. Но большое спасибо за ваш ответ 🙂
Ответ №2:
Возможно, что к тому времени, когда произойдет щелчок, изменять URL-адрес внутри него будет слишком поздно. Возможно ли, что то, из-за чего ваша ссылка нуждается в обновлении, может быть выполнено, когда это изменено, а не ждать, пока пользователь нажмет на ссылку?
Я бы предположил, что ряд браузеров проигнорировали бы это просто потому, что это был бы эффективный способ быть вредоносным. Добавление ссылки с надписью «google», а затем перенаправление вас на какой-нибудь зараженный вирусом сайт и т.д., Поскольку даже самый разумный пользователь, желающий посмотреть, куда приведет ссылка, будет видеть Google, пока не станет слишком поздно.
Комментарии:
1. #1 — да, это возможно, но мне все еще любопытно, можно ли это сделать или нет 🙂 # 2 — Я могу представить, что вы можете быть правы в этом вопросе : S
2. Если вы стоите, не могли бы вы сменить обувь на ноге, пока стоите на ней? Было бы странно не иметь возможности переопределить ее, как это может быть в большинстве случаев, но, я думаю, для предотвращения вредоносного поведения этого также было бы разумно не делать .. Как побочная мысль, вам также может потребоваться вернуть false для этого раздела.. в противном случае это может изменить ее, но поскольку она не получила false, продолжайте и выполните исходное поведение