我有一个带锚标记的页面。在我的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)。
请告知。提前谢谢。
答案 0 :(得分:68)
如果您安装了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”。
答案 1 :(得分:11)
您应该像这样调用点击事件:
document.getElementById("proxyAnchor").click();
// $('#proxyAnchor').click();
但在您的情况下,如果您愿意,您应该将窗口的位置设置为重定向页面。
答案 2 :(得分:1)
我相信你想调用click
事件。不是“onClick”。此外,确保在调用方法时包括括号()。不要将方法(以(和)结尾)与不以(和)结尾的属性和属性混淆。
// Using jQuery - Which you tagged...
$("#proxyAnchor").attr("href", proxyImgSrc).click();
答案 3 :(得分:1)
我相信这就是你所追求的:
var proxyImgSrc="CostMetrics.aspx?Model=" + model +"&KeepThis=true&TB_iframe=true&height=410&width=650";
$("#proxyAnchor").attr('href', proxyImgSrc).trigger("click");;
答案 4 :(得分:1)
要立即更改页面,您还可以执行以下操作:
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?filename=tryjs_location
答案 5 :(得分:0)
如果您正在寻找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);
}