打开多个链接的Javascript函数(如果存在)

打开多个链接的Javascript函数(如果存在),javascript,Javascript,我正在寻找以下场景的解决方案: 我想编写一个脚本,用指定的链接打开一个新窗口(例如:http://yadayada.org/customer#.pdf)。使用相同的功能(或单击),我还想打开http://yadayada.org/customer#A.pdf如果存在。下面我有一个函数的工作示例,可以在2个新窗口中打开文件。但是,如果第二个位置不存在,我显然会得到一个空白窗口。如果引用不存在,我希望第二页不要打开 function OpenFile() { win=window.open(

我正在寻找以下场景的解决方案:

我想编写一个脚本,用指定的链接打开一个新窗口(例如:
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:

[编辑] 正如在评论中提到的,这不会跨域工作

您可以尝试以下操作-将
?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");
        }
    })
“工作”演示:


如果您需要跨域检查,我会尝试呼叫服务器端。

如果第二个位置不存在,这是什么意思?如果URL上没有页面,或者如果没有URL?您使用的是什么HTML,第二个(或第一个)URL/
href
来自哪里?如果URL上没有页面。PDF是根据customernumber保存的,有时会保存一个修改(在文件名-->customernumber.PDF中的customernumber中附加一个a。因此,如果他们没有修改,“http://yadayada.org/~(student\u number)a.PDF”将返回一个“未找到对象”窗口。抱歉,我没有看到您问题的第二部分。在第1页,根据某些条件,客户旁边存在一个图像。如果显示图标并单击它,则会调用Alert.html页面,该页面包含我上面粘贴的代码。谢谢Andreas。如果我在其他服务器上检查文件,您知道这是否仍然有效吗?(跨域脚本)否,因为。JavaScript是从服务器端代码动态写出的吗?如果是,那么您可以从服务器代码测试状态代码并写出JavaScript代码。