2012-11-16 81 views
3

當訪問者點擊一個按鈕元素,我怎麼能更改URL?訪問者點擊按鈕時,如何更改頁面的URL?

例子:

<form id="search"> 
    <input type="text" /> 
    <button onclick="javascript:alert('hi');">Alert Hi</button> 
    <button onclick="javascript:window.location.href='http://www.google.com/'">Go to Google</button> 
</form> 

對於一個快速演示頁,我只需要訪問者發送到一個新的URL,當他們點擊一個按鈕(Or see JSFiddle)。我的onclick執行JavaScript(在警報嗨按鈕),如果我從Firebug的控制檯執行window.location.href='http://www.google.com/'的網址變更。我需要做些什麼才能更改點擊按鈕上的網址?

+0

你的按鈕提交表格。此外,由於你有一個小提琴,你應該知道,谷歌不會因爲'X-幀options' – Musa

+0

的框架加載所以一個錨標記只是是不夠的? – Shmiddty

+0

@Shmiddty - 我知道!在這種情況下,該按鈕是很好的風格,但網頁是一個半建狀態,我等待從利益相關者的一些規範,所以我們作假。 – KatieK

回答

10

的問題是,當你點擊按鈕的形式提交。添加type="button",以便它不提交表單。 onclick屬性中也不需要javascript。請參見How to prevent buttons from submitting forms

示例http://jsfiddle.net/E7UEe/1/請注意,由於jsfiddle不允許它訪問google.com。注意錯誤消息Refused to display document because display forbidden by X-Frame-Options.

<form id="search"> 
    <input type="text" /> 
    <button onclick="javascript:alert('hi');">Alert Hi</button> 
    <button type="button" onclick="window.location.href='http://www.google.com/'">Go to Google</button> 
</form>​ 

,沒有JS工作的一個替代方案是appearance:buttonCSS directivehttp://jsfiddle.net/d6gWA/

<a class="btn"> Link looking like button</a>​ 
.btn { 
    appearance: button; 
    -moz-appearance: button; 
    -webkit-appearance: button; 
    -ms-appearance: button; 
}​ 

或者你總是可以把按鈕鏈接http://jsfiddle.net/d6gWA/2/

<a class="btn" href="http://www.google.com" target="_blank"><button type="button">Link Button</button></a>​ 
+0

假設按鈕是一個提交按鈕? – KatieK

+2

是http://dev.w3.org/html5/markup/button.html'沒有指定類型屬性的按鈕元素表示同樣的事情,與設置爲「提交」的類型屬性按鈕元素.' –

-2
<button onclick="javascript:window.location='http://www.google.com/'">Go to Google</button> 

只是刪除您.href和它的工作前人的精力