2013-07-27 70 views
0
if ($("#canvas").css('background-image') == 'url(images/endOfGame.jpg)') { 

不工作的時候寫的完整路徑。但這:有檢查的背景圖像的JavaScript

var element = document.getElementById('canvas'); 
       var style = window.getComputedStyle(element); 
       var imagex = style.getPropertyValue('background-image'); 
       console.log(imagex); 
       if (imagex === "url(file:///C:/Users/Jack/Documents/myGames/Pong/images/endOfGame.jpg)") { 

,這並不:

var element = document.getElementById('canvas'); 
        var style = window.getComputedStyle(element); 
        var imagex = style.getPropertyValue('background-image'); 
        console.log(imagex); 
        if (imagex === "url(images/endOfGame.jpg)") { 

爲什麼呢?我必須爲每臺運行我的遊戲的計算機更改完整的文件路徑代碼。不好。

謝謝。

+0

什麼'如果(代碼imagex ===「圖像/ endOfGame.jpg」){' – tymeJV

+0

難道你們就不能只是一個相對路徑工作? – putvande

+0

我們可以看到你的目錄結構嗎? – Austen

回答

2

你可以使用indexOf返回找到的文本(0以上)或字符位置-1,如果沒有找到:

if (imagex.indexOf("url(images/endOfGame.jpg)") >= 0) { 
    // yes, string contains that text 
} 

我寧願:

if (imagex.indexOf("images/endOfGame.jpg") >= 0) { 
    // yes, string contains that text 
} 

忽略url(..)。以下版本忽略大小寫(大寫或小寫)的區別:

if (imagex.toUpperCase().indexOf("images/endOfGame.jpg".toUpperCase()) >= 0) { 
    // yes, string contains that text 
} 
+0

我正要獲得url結果的最後5個字母和一個變量,它也將工作扔掉它們。問題是,在if語句中,我將把圖像更改爲「endOfGame1.jpg」。因此,我將不得不稍微改變你的做法是還包含相同的字符串(+ 1號) – user2602079

+0

你可以用'子(從,到)'提取字符串的一部分。省略'to'參數以獲取'from'位置後面的所有文本。你可以使用'indexOf('Game')'來獲取遊戲在字符串中開始的位置。 –

+0

它不讓我編輯我的評論。謝謝,我想我會用這種方法。我只需要計算字符位置並且比> = 0更具體,因爲我上面評論中提到的原因。由於 – user2602079