【发布时间】:2014-02-17 11:18:11
【问题描述】:
我正在开发一个 JS 程序,它应该打开一个网页 www.mysite.com 并单击该网页内的链接以下载 pdf。 点击链接如下:
<a onclick="download();return false;" href="#noWhere">Click to Download</a>
一般情况下,手动点击链接,会调用如下函数下载pdf:
function download() {
document.forms[0].action = path + "/xxW04_sv_0140Action.do";
document.forms[0].target = "_self";
document.forms[0].submit();
}
我的代码是简化的javascript代码来打开页面并点击“点击下载”按钮是这样的:
<script>
var linkname = "http://www.mysite.com";
var windowname = "window_1"
// Opens a new window
var myWindow = window.open(linkname, windowname ,"width=400,height=600");
//should open a link to download pdf
myWindow.document.getElementById('href = \"#noWhere\"').click();
</script>
到目前为止,我可以在单独的窗口中使用“mysite.com”打开网页,但由于某种原因,没有发生按钮点击,当然也没有下载 pdf。 当然,如果我手动点击“点击下载”按钮,它就会下载。
谁能告诉我我做错了什么?上面的js代码为什么不能模拟点击?
或者可能给我一些尝试。任何帮助都非常感谢,比你。
更新: 从下面的初步答案来看,这种方法可能注定要失败!谁能建议我下载这些 pdf 文件的更好方法?
【问题讨论】:
-
如果网站与您的脚本不在同一个域中,您将无法使用 javascript 点击这些网站。为什么不能直接将 .pdf 的 url 复制到脚本中?
-
getElementById('href = \"#noWhere\"') 不起作用。您传递给此方法的字符串不是 id。您应该使用 querySelectorAll
-
@kamilkp,我认为 getElementById('href = \"#noWhere\"') 可能是一个长镜头,但链接上没有这样的 id。您是否看到任何其他方式来识别此链接?我将如何使用“querySelectorAll”?
-
document.querySelectorAll('[href="#noWhere"]')
标签: javascript html