2013-07-27 32 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