如果您需要操作原始HTML,至少要在JavaScript中分别添加事件处理程序。和CSS文件中的样式。
您的图片标记代码应包含data-
属性:
i = i.replace(/"/g, '\\"')
return '<img data-input="' + i + '" src="../images/btnsave2.png" />'
然后添加一个监听器是如此简单:
var onClick = function (e) {
var data = e.target.getAttribute('data-input')
if (data) {
abccd(data)
}
}
/* Firefox, Chrome &c */
if (document.addEventListener) {
document.addEventListener('click', onClick, false)
/* IE <9 */
} else if (document.attachEvent) {
document.attachEvent('onclick', function() {
return onClick({ target: event.srcElement })
})
}
当然,XSS问题,通过@Quentin提到的,是仍然是一个问题。但至少你不会像原始示例那样在内联处理函数中转义嵌套引号。
Eugh。重构。使用标准的DOM,而不是传递大量的HTML。然后你可以使用标准的事件处理器绑定技术。 – Quentin 2012-01-10 14:02:01
为什么图像中缺少'alt'属性? – Quentin 2012-01-10 14:12:28
@Quentin: - 我在JQGrid的一个自定义格式化程序中使用这个。我不认为我可以在 – Nipuna 2012-01-10 16:05:08