繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM