[英]Javascript function that opens more than one link (if it exists)
我正在寻找以下情况的解决方案:
我想编写一个脚本,使用指定的链接打开一个新窗口(例如:http: http://yadayada.org/customer#.pdf
)。 使用相同的功能(或单击),我还要打开http://yadayada.org/customer#A.pdf
如果存在)。 下面有一个函数的工作示例,该函数可在2个新窗口中打开文件。 但是,如果第二个位置不存在,我显然会得到一个空白窗口。 如果引用不存在,我希望不打开第二页。
function OpenFile() {
win=window.open('http://yadayada.org/~(student_number).pdf', '_self');
win2=window.open('http:/yadayada.org/~(student_number)a.pdf', '_blank');
win.focus();
}
OpenFile();
您需要使用JavaScript检查URL的http状态代码,以确定该页面是否存在,然后打开该链接。
如果您使用的是jQuery,那么它将使生活更轻松: 使用javascript检查http状态代码
否则,您可以使用普通的旧JavaScript: 如何从JavaScript获取HTTP状态
[编辑]如评论中所述,这不适用于跨域。
您可以尝试以下操作-通过添加?callback=?
强制将请求变为JSONP ?callback=?
参数,但您需要查看.fail
回调,因为pdf显然不是JSON数据。 另外,请注意,整个PDF均已下载,因此大文件会有所延迟。
var url = "http://samplepdf.com/sample.pdf?jsoncallback=?";
$.getJSON(url)
.fail(function( jqxhr, textStatus, error ) {
if (jqxhr.status == 200) {
console.log("request document found success");
}
})
“工作中”的演示: http : //jsfiddle.net/WmHjs/
如果您需要跨域检查,我会尝试在呼叫服务器端进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.