2012-01-29 128 views
0

我與現有的網站合作,與一些錨點像這樣的標籤:使用Javascript - 編程中的iOS Safari瀏覽器點擊錨

<ul> 
    <li><a id="answer-1" href="/" rel="0">Answer 1</a></li> 
    <li><a id="answer-2" href="/" rel="1">Answer 2</a></li> 
    <li><a id="answer-3" href="/" rel="2">Answer 3</a></li> 
    <li><a id="answer-4" href="/" rel="3">Answer 4</a></li> 
</ul> 

我需要以編程方式點擊取決於用戶的選擇這些錨之一。

在桌面上,在IE瀏覽器,這個工程:

document.getElementById('answer-1').click(); 

然而,沒有在iOS的Safari瀏覽器相當的工作,這將導致一個彈出:

if (!document.getElementById('answer-1').click) alert ('Oh no!'); 

盡我可以告訴,他們還有其他一些javascript被用來發送rel標籤作爲答案。有沒有另一種方式來以編程方式點擊iOS Safari中的錨點?或者我需要去挖掘他們的javascript來找出當錨點被點擊時被調用什麼?

我也試過,不工作:

window.location.href = document.getElementById('answer-1').href; 

他們必須在Javascript中做更多的地方(也許jQuery的)。

+0

'window.location'是一個對象。你應該像下面這樣設置它的'href'屬性:'window.location.href = document.getElementById('answer-1')。href' – Teemu 2012-01-29 15:05:41

+0

對不起,我在腦海裏打字。我調整了我的答案,它不起作用。 – jonathanpeppers 2012-01-29 15:07:26

+0

這是一個安全問題。您無法在所有瀏覽器中檢查本地文件夾。 – Teemu 2012-01-29 15:17:07

回答

0

看起來移動Safari不支持點擊功能。 document.getElementById('answer-1')。click returns undefined這就是爲什麼你會得到警報。嘗試使用.trigger()

+0

我不確定他們已經加載了哪個版本的jquery,但我無法使其工作。 – jonathanpeppers 2012-01-30 12:44:57

0

它看起來像我沒有辦法在移動Safari瀏覽器中調用click()

使用谷歌瀏覽器中的開發工具欄,我能夠找出當你點擊這些錨點之一時調用的javascript函數。

我能夠調用函數來獲得我所需要的。

我將等待幾天來標記答案,因爲我仍然想知道在移動Safari瀏覽器中替代click()

-1

在Snow Leopard或Lion下測試時,我的Mac應用程序也發生了此問題。奇怪的是它與Mountain Lion合作。

我使用jQuery解決了這個問題。

$('#answer-1').click(); 

你也可以試試看,如果該網站已經加載的jQuery!