2011-12-14 2 views
0

Как я могу сделать это более безопасным и безопасным:окно Открыть с Jquery мыши

  • Газа небезопасные символы из заголовка
  • Предотвращение неопределенных ошибок

код до сих пор:

// Open HREF in popup window 
$('.external').bind('click', function() { 
    var url = $(this).attr("href"); 
    var title = ($(this).attr("data-popup-title")) ? $(this).attr("data-popup-title") : $(this).attr("title"); 
    var image = $(this).attr("data-popup-image"); 
    var width = ($(this).attr("data-popup-width")) ? $(this).attr("data-popup-width") : '626'; 
    var height = ($(this).attr("data-popup-height")) ? $(this).attr("data-popup-height") : '436'; 
    window.open('http://www.facebook.com/sharer.php?s=100&p[title]=' + title + '&p[url]=' + url + '&&p[images][0]=' + image, 'sharer', 'toolbar=0,status=0,width='+width+',height='+height); 
    return false; 
}); 

Также лучше всего использовать return false или использовать preventDefault()?

+2

Это не безопасность. Нет ничего безопасного в том, чтобы удалять данные из тегов в JavaScript. Если кому-то удалось добавить скрипт в атрибут 'title' ссылки, у них есть возможность выполнить этот код задолго до того, как ваш обработчик придет и откроет всплывающее окно. На самом деле нет смысла делать то, что вы делаете. Кроме того, пожалуйста, напишите только один вопрос на вопрос. – meagar

+0

Хорошо, может быть, это не правильное слово. –

+0

Но я все еще хочу иметь 1 на функции щелчка вместо жесткого кодирования window.open в каждом –

ответ

0

Это не о лучших практиках, preventDefault() и return false do разные вещи. Возврат false предотвращает появление пузырьков через другие обработчики, а preventDefault просто предотвращает появление по умолчанию действия «click» (обычно после href ссылки) после того, как все остальные обработчики событий запущены.

Смежные вопросы