我有下面的代码
<a href="" onclick="window.open((window.pageViewer && pageViewer.link || function(link){return link;})(this.href + (this.href.indexOf('?')>=0 ? '&' : '?') + 'url=' + escape(document.location.href)), 'Chat000', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=640,height=480');return false;">
我需要用JavaScript / DOM元素实现相同的功能。我不允许直接写html。所以我可能要使用document.createElement
。
我可以使用如下吗?
var a = document.createElement("a");
a.setAttribute('onclick',"window.open((window.pageViewer && pageViewer.link || function(link){return link;})(this.href + (this.href.indexOf('?')>=0 ? '&' : '?') + 'url=' + escape(document.location.href)), 'Chat000', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=640,height=480');return false;");
此代码有效吗?如果没有,该怎么做?
答案 0 :(得分:2)
您的代码适用于某些浏览器,但不适用于所有浏览器。例如,某些版本的IE没有正确地将“属性”与“属性”绑定在一起。因此,您希望支持的浏览器取决于setAttribute
实际上不会设置点击侦听器。这就是为什么最好的事情,由javascript设置,具有更广泛的兼容性:
var a = document.createElement("a");
a.onclick = function(event) {
window.open(/*.. your params **/);
return false;
}
这基本上是当您设置onclick
属性时,如果浏览器正确绑定属性,那么:所以,从功能的角度来看,它完全相同。