2013-02-28 62 views
0

我相對比較新的HTML,JS等。直到現在我在一個「包含」環境中工作的網站,我只訪問自己的資源,或者如果我做了其他人, d總是有一個硬編碼的鏈接。使用JavaScript將網站轉發到另一臺服務器上的pdf文件

我的大學在線提供班級和日期的在線報告。 pdf總是保存在以下格式../onxx-yyyy-ww.pdf

我想創建一個網站,一旦請求上課,然後將其保存在一個cookie中,然後每次您訪問該網站它會按照當前時間表將您轉到PDF文件。 我發現這可以通過一種叫做AJAX的東西來實現,我對此一無所知。這是多遠我來:

JS部分(不含getWeek()由尼克Baicoianu):

window.onload = function(){ 
      checkCookie(); 
     } 

     function checkCookie(){ 
      if(document.cookie!=''){ 
       forwarding(); 
      } 
     } 

     function forwarding(){ 
      alert('Forwarding...'); 
      if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp=new XMLHttpRequest(); 
      } 
      else{// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 

      xmlhttp.onreadystatechange=function(){ 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 
        alert(xmlhttp.responseText); 
       } 
       } 

      var todayDate = new Date(); 
      var weekDate = todayDate.getWeek(); 
      a = document.cookie; 
      cookiename = a.substr(0,a.search('=')); 
      cookiewert = a.substr(a.search('=')+1,a.search(';')); 
      if(cookiewert == '') 
      {cookiewert = a.substr(a.search('=')+1,a.length);} 
      if(cookiewert<10){ 
      cookiewert= "0" + cookiewert; 
      } 

      for (var w=weekDate;w>0;w--){ 
      xmlhttp.open("GET","http://pollux.dhbw-mosbach.de/cmos_extern_kurs_ext/"+cookiewert+"-"+todayDate.getFullYear()+"-"+w+".pdf",true); 
      xmlhttp.send(); 
      } 
     } 

     function run(){ 
      var d = new Date(); 
      d = new Date(d.getTime() +1000*60*60*24*365*5); // 5 Jahre Cookie 

      document.cookie = 'class='+document.getElementById('class').value+'; expires='+d.toGMTString()+';'; 

      forwarding(); 
     } 

HTML:顯示

<body> 
    <select id="class"> 
     <option value="on09">on09</option> 
     <option value="on10">on10</option> 
     <option value="on11a">on11a</option> 
     <option value="on11b">on11b</option> 
     <option value="on12">on12</option> 
    </select> 
    <button onclick="run()">Weiter</button> 
</body> 

我轉發警報,但後來什麼更多發生,我無能爲力。 如果除了我的問題之外,您還有我的代碼反饋,我會很樂意接受它。

我要吃午飯了,所以需要一段時間才能回覆。 Thx的幫助!

編輯:

我把一切都用jQuery工作到哪裏,如果被請求的文件存在,它可以檢索的信息點。什麼都沒發生。也許這是我的代碼中的錯誤,但在控制檯中它沒有說什麼。還做了我發現在jQuery的API的get() http://api.jquery.com/jQuery.get/

由於瀏覽器的安全限制,大多數「Ajax」的請求都受到同源策略;該請求無法成功從不同的域,子域或協議中檢索數據。

而且這是我的新的轉發():

function forwarding(){ 
      alert('Forwarding...'); 

      var todayDate = new Date(); 
      var weekDate = todayDate.getWeek(); 

      a = document.cookie; 
      cookiename = a.substr(0,a.search('=')); 
      cookiewert = a.substr(a.search('=')+1,a.search(';')); 
      if(cookiewert == '') 
      {cookiewert = a.substr(a.search('=')+1,a.length);} 
      alert('http://pollux.dhbw-mosbach.de/cmos_extern_kurs_ext/'+cookiewert+'-'+todayDate.getFullYear()+'-'+singleWeek(weekDate)+'.pdf'); 

      for (var w=weekDate;w>0;w--){ 
       $.ajax({ 
        type: 'HEAD', 
        url: 'http://pollux.dhbw-mosbach.de/cmos_extern_kurs_ext/'+cookiewert+'-'+todayDate.getFullYear()+'-'+singleWeek(weekDate)+'.pdf', 
        crossDomain: true, 

        success: function() { 
         document.location = "http://pollux.dhbw-mosbach.de/cmos_extern_kurs_ext/"+cookiewert+"-"+todayDate.getFullYear()+"-"+singleWeek(weekDate)+".pdf"; 
        }, 

        error: function() { 
         alert("Unable to connect to secure checkout.");//TODO: remove when success is working 
         return false; 
        } 
       }); 
      } 

      function singleWeek(weekDate){ 
       if (weekDate<10){ 
        weekDate = "0"+weekDate; 
       } 
      return weekDate; 
      } 
     } 

所有我想要的任何方法/函數文件是否存在,在這種情況下,狀態應該成功或錯誤的把我送回去給我的反饋。我可以與該工作,如果它會工作... 我沒有看到我的錯誤

+0

我試過使用jQuery,但只要我把它作爲我的腳本的src,大多數事情都停止工作,即使它們在此之前是完美無缺的。例如我的run()函數拋出未定義的錯誤,當src中沒有它時,它的工作原理。 – Frank 2013-02-28 13:50:41

回答

0

似乎是這樣的是不可能實現與JavaScript由於相同的原產地政策。

0

但這就是你所做的所有時候得到的答案:警報!
您的回覆是HTML格式文本嗎?你想重定向用戶還是在網頁上顯示內容?
Basicaly,你最擅長的是你的迴應。更換一個div的內容,例如

document.getElementById("mydiv").innerHTML = xmlhttp.responseText 

或者,您可以更改文件的位置(重定向),或創建一個鏈接到PDF(我不知道你怎麼「顯示」的PDF格式,以瀏覽器插件,作爲可下載的對象,或庫自動生成PDF格式的HTML和服務,而不是PDF文件?)

+0

它應該將頁面重定向到相應的鏈接,以便可以用瀏覽器顯示pdf。這只是爲了一些同學和我自己。 – Frank 2013-02-28 15:11:19

相關問題