2013-01-17 39 views
0

我試圖讓一個簡單的圖像按鈕在Phonegap中工作。我想單擊時交換圖像,並在短時間後轉發到位置。Imagebutton JS交換不適用於webkit/phonegap?

所以我曾嘗試:

function highl(Bildname,BildURL,Link) { 
document.images[Bildname].src = BildURL; 
window.setTimeout(forward,1000); 

function forward() { 
window.location = Link; 
} 
} 

在HTML只是鏈接,如:

<a href="javascript:highl('level01','level1h.png','test.html')"><img name="level01" src="level1.png" border="0"></a> 

作品以及我的萬盎司,但不是在的Webkit/PhoneGap的(交換doesen't工作前鋒好)。

任何人都可以幫忙嗎?

編輯:也doesen't工作鉻...

+0

我並不十分驚訝手機瀏覽器不會偵聽src的變化。即使桌面瀏覽器也可能有困難(例如Chrome我記得有內存泄漏) – rds

+0

Webkit不支持DOM屬性突變(參見[問題8191](https://bugs.webkit.org/show_bug.cgi? id = 8191))標記**不會解決**。 我不知道是否與您的問題有關係 – rds

+0

也許有任何建議可以通過其他方式解決此問題? – JonnyB

回答

0

的Webkit不支持DOM屬性突變(見issue 8191)標記不會解決。 您的問題可能存在鏈接。

作爲一種解決方法,我認爲您應該簡單地刪除DOM節點的內容,並創建一個新的映像節點。

編輯:用代碼

您需要確定容器中。 另外,我設置了href,這樣我禁用了javascrpt,鏈接仍然可以跟着。 如果啓用javascript,return false會告訴瀏覽器不要跟隨鏈接。

<a href="test.html" onClick="return highl(this, 'level1h.png', 'test.html');"> 

javascript。我內嵌forward,因爲它很短,但你不需要。

function highl(el, imgURL, link) { 
    var img = new Image(); 
    img.src = imgUrl; 
    // remove current image. TODO ensure firstChild is not null? 
    el.removeChild(el.firstChild); 
    // place new image 
    el.append(img); 
    setTimeout(function() {window.location=link;}, 1000); 
    return false; 
} 
+0

我對這些東西都很新。所以我今天已經閱讀了很多關於DOM的內容,但是找不到其他解決方案。你能給我一個小片段來幫助我在路上嗎? – JonnyB

+0

這也適用於Webkit中的我。現在我用jquery來交換按鈕。 [link](http://stackoverflow.com/questions/540349/change-the-image-source-using-jquery)無論如何謝謝你的幫助! – JonnyB