JavaScript:从javascript调用锚标记的点击事件

我有一个带锚标记的页面。 在我的JavaScript中,我根据一些if-else条件动态设置锚标记的HREF属性。 现在我想以编程方式调用anchor标记的click事件。 我使用下面的代码,但没有成功。

 var proxyImgSrc="CostMetrics.aspx?Model=" + model +"&KeepThis=true&TB_iframe=true&height=410&width=650"; document.getElementById("proxyAnchor").href=proxyImgSrc; document.getElementById("proxyAnchor").onclick; 

任何人都可以告诉我如何继续吗? 我在这个链接上有一个jQuery灯箱实现(thickbox)。

好心提醒。 提前致谢。

如果您安装了jQuery,那么为什么不这样做:

 $('#proxyAnchor')[0].click(); 

请注意,我们使用[0]指定第一个元素。 jQuery选择器返回一个jQuery实例,并调用click(),只调用click javascript handler,而不是href。 在实际元素上调用click()(由[0]返回)将跟随href等中的链接。

请看这里举例说明不同之处: http : //jsfiddle.net/8hyU9/

至于为什么你的原始代码不起作用 – 可能是因为你正在调用onclick ,而不是onclick() 。 如果没有括号,JavaScript将返回分配给onclick属性的任何内容,而不是尝试执行它。

试试下面这个简单的例子来看看我的意思:

 var f = function() { return "Hello"; }; alert(f); alert(f()); 

第一个将显示函数的实际文本,而第二个将按预期显示单词“Hello”。

您应该像这样调用click事件:

 document.getElementById("proxyAnchor").click(); // $('#proxyAnchor').click(); 

但在您的情况下,如果需要,您应该将窗口的位置设置为重定向页面。

我相信你想调用click事件。 不是“onClick”。 此外,确保在调用方法时包括括号()。 不要将方法(以(和)结尾)与不以(和)结尾的属性和属性混淆。

 // Using jQuery - Which you tagged... $("#proxyAnchor").attr("href", proxyImgSrc).click(); 

要立即更改页面,您还可以执行以下操作:

 var proxyImgSrc= "CostMetrics.aspx?Model=" + model + "&KeepThis=true&TB_iframe=true&height=410&width=650"; window.location = proxyImgSrc; 

以下是W3学校的一个例子: http : //www.w3schools.com/js/tryit.asp? filenamename = tryjs_location

我相信这就是你所追求的:

 var proxyImgSrc="CostMetrics.aspx?Model=" + model +"&KeepThis=true&TB_iframe=true&height=410&width=650"; $("#proxyAnchor").attr('href', proxyImgSrc).trigger("click");; 

如果您正在寻找IE的支持,那么下面的示例可能会有所帮助:

假设您在响应对象中有blob文档:

  var blob = new Blob([response.responseText], { type: headers['content-type'] }); if (navigator.msSaveOrOpenBlob) { //Launches the associated application for a File or Blob saving for non webkit based browser such as safari or IE navigator.msSaveOrOpenBlob(blob, "cvSummary.xml"); } else { //code for webkit based browser var link = document.createElement('a'); document.body.appendChild(link); link.style = "display: none"; var url = window.URL.createObjectURL(blob); link.href = window.URL.createObjectURL(blob); link.download = "cvSummary.xml"; link.dataset.downloadurl = ["text/xml", link.download, link.href].join(':'); link.click(); window.URL.revokeObjectURL(url); }