2011-03-24 32 views
14

我希望能夠根據某些屬性生成一個URL,然後轉到JavaScript中的新URL。使用Javascript創建並轉到url

這是我到目前爲止有:

triggerNumber = document.findcontrol(txtTrigNo).text; 
hostAddress= top.location.host.toString();  
url = "http://" + hostAddress "/" + triggerNumber 

如何瀏覽到新的網址是什麼?

回答

27

簡單的嘗試:

window.location = url; 

但是,試圖做到這一點,你必須在地址以確保頁面之前的 「http://」 + hostAddress 「/」 + triggerNumber存在。例如,將有效的triggerNumbers放在數組中,並檢查它是否存在。所以:

//Not sure if at the end it should be .text or .value or .value() 
triggerNumber = document.findcontrol(txtTrigNo).text; 
var validTriggers = [123, 456, 789]; 
if (validTriggers.indexOf(parseInt(triggerNumber)) == -1) { 
    alert("Invalid trigger number"); 
} else { 
    hostAddress= top.location.host.toString();   
    url = "http://" + hostAddress "/" + triggerNumber; 
} 

最後,如果目標是服務器端頁面(PHP,ASP等),該地址通常是這樣的:

"http://" + hostAddress "/trigger.php?id=" + triggerNumber; 

但你最好使用form小號爲了這。

編輯:正如Cerbrus建議的那樣,使用javascript驗證這些值是在離開頁面之前告訴用戶有關錯誤的好方法。但爲了確保將正確的數據發送到服務器,在服務器端代碼中進行驗證也很重要。

在此示例中,如果觸發器號碼無效,用戶最終可能會看到404錯誤;但有了敏感信息,更糟的事情就會發生。

+0

對於它的價值,我建議首先驗證服務器端的觸發器號碼。 – Cerbrus 2012-12-27 10:28:39

+0

@Cerbrus:謝謝。實際上,對於OP的具體問題,在發送數據之前沒有太多需要檢查的地方,因爲它只是地址級聯。目標頁面必須小心。無論如何,我添加了一些關於此的信息。 – Hossein 2012-12-29 12:34:43

5

你需要的是:

document.location.href = url; 

後,您必須在url變量的URL。

要獲得輸入元素的值有:

var triggerNumber = document.getElementById("txtTrigNo").value; 
0

這將讓服務器的主機名和端口,並連接所有的元素的值到結束,然後進入所產生的URL。

var triggerNumber = document.getElementById("txtTrigNo").value(); 
var url = "http://"+window.location.host+"/"+triggerNumber; 
window.location = url;