窗口打开
问题描述:
我怎样才能让这个更安全,更安全:从标题窗口打开
- 地带不安全的字符
- 防止未定义的错误
到目前为止的代码:
// 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()
?
答
这不是最佳做法,preventDefault()
和return false
做不同的东西。返回false可防止事件冒泡通过其他处理程序,而preventDefault
只会阻止在所有其他事件处理程序运行后发生默认的“单击”操作(通常在链接的href之后)。
这不是安全。在JavaScript中剥离标签中的数据没有什么安全的。如果有人设法将脚本注入链接的`title`属性,他们就有能力在处理程序出现之前执行该代码并打开一个弹出窗口。做你正在做的事实在没有意义。此外,请仅为每个问题发布一个问题。 – meagar 2011-12-14 21:06:23