打开多个链接的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代码。