2014-10-07 81 views
0

我想實現JavaScript頁面加載Impresspages 4.2.3上的背景圖像更換器,如http://www.9lessons.info/2011/03/background-image-change-on-refresh-with.html所述。它在我的本地主機上工作,但移到我的託管服務器時不起作用。JavaScript背景圖片在頁面加載更改Impresspage

我把這段代碼下面的「_header.php」標籤之間:

<script type="text/javascript"> 
var totalCount = 4; 
function ChangeIt() 
{ 
var num = Math.ceil(Math.random() * totalCount); 
document.body.background = 'http://localhost/halmaheradivecruise.com/theme/air/assets/img/'+num+'.jpg'; 
document.body.style.backgroundRepeat = "repeat";// Background repeat 
} 
</script> 

和下面這段代碼在標籤:

​​
+0

你忘了切換到這個路徑:'document.body.background ='http://localhost/halmaheradivecruise.com/theme/air/assets/img/'+num+'.jpg';'到路徑您的服務器上的圖像? – DrewT 2014-10-07 04:58:06

+0

我將路徑更改爲www。但仍然無法正常工作...... – user3766934 2014-10-07 05:03:48

+0

爲什麼腳本中包含'標記? – DrewT 2014-10-07 05:20:45

回答

1

之前黑客的代碼,請檢查你想實際加載圖像是否存在。

以你的代碼,你得到的東西是這樣的:

http://www.halmaheradivecruise.com/theme/air/assets/img/2.jpg 

如果按照這個鏈接,你會得到「404未找到」錯誤。所以問題出在鏈接而不是腳本。

真正的問題在於基於Unix的系統的區分大小寫。 ImpressPages沒有文件夾「主題」。所有主題都放在「主題」中。大部分時間的主題也都以大寫字母命名。因此,您的圖片在這裏:

http://www.halmaheradivecruise.com/Theme/BantikAir/assets/img/3.jpg 

在它的工作,因爲Windows沒有看到小寫和大寫字母之間有什麼區別本地主機。 Unix系統將它們視爲不同的路徑。

+0

除此之外。在ImpressPages上,您可以使用ip.baseUrl來獲取網站的URL。那麼你的代碼將如下所示: document.body.background = ip。baseUrl +'theme/air/assets/img /'+ num +'。jpg'; 並且可以在任何域上使用。本地主機和生產服務器。 – 2014-10-07 11:20:40

+0

感謝Audrius ...它現在正在工作:D 這只是'區分大小寫'問題... – user3766934 2014-10-14 04:15:16

0

除本地主機的路徑,沒有什麼明顯的不正確與您的代碼

  • 使用開發人員工具檢查器,以確保(通常Windows上的mac或f12 cmd + alt +我)和se LECT網絡選項卡,確保圖像不會得到一個404
  • 也在開發工具使用JavaScript控制檯,以確保沒有JavaScript錯誤
  • 如果您仍遇到問題,請確保您要ChangeIt()通話所有腳本都加載之後由手動鍵入它變成你的瀏覽器的開發工具

而且JavaScript控制檯,而不是:

var num = Math.ceil(Math.random() * totalCount); 

嘗試

爲什麼這是一個更好的方法(均勻分佈等),這裏
var num = Math.floor(Math.random() * totalCount) + 1 

更多信息:Generate random number between two numbers in JavaScript