簡體   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