我相對比較新的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;
}
}
所有我想要的任何方法/函數文件是否存在,在這種情況下,狀態應該成功或錯誤的把我送回去給我的反饋。我可以與該工作,如果它會工作... 我沒有看到我的錯誤
我試過使用jQuery,但只要我把它作爲我的腳本的src,大多數事情都停止工作,即使它們在此之前是完美無缺的。例如我的run()函數拋出未定義的錯誤,當src中沒有它時,它的工作原理。 – Frank 2013-02-28 13:50:41