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