2012-02-10 18 views
1

在我的網站上,我有一個圖像查看器。每次用戶點擊左側或右側按鈕時,頁面的網址都會發生變化。圖片src使用當前頁面的url(url中唯一的數字)中的特定數字。下面我提供了我正在使用的代碼。代碼工作完美,但它只適用於Mozilla Firefox。我如何修復它以使其適用於所有瀏覽器。其他瀏覽器的問題是圖像不顯示。JavaScript代碼只與mozzila firefox一起工作?

<img src="" id="image" > 
    <script type="text/javascript"> 
     document.getElementById('image').src ="Images/"+location.href.match(/\d+/)+".jpg"; 
     <br/> 
     document.wrriteln(location.href.match(/\d+/)+".jpg"); 
    </script> 
    <br/> 
    <script> 
    var url = location.href; 
    function nextImage() { 
     return(url.replace(/(\d+)(\.html)$/, function(str, p1, p2) { 
      return((Number(p1) + 1) + p2); 
     })); 
    } 
    function prevImage() { 
     return(url.replace(/(\d+)(\.html)$/, function(str, p1, p2) { 
      return((Number(p1) - 1) + p2); 
     })); 
    } 
    </script> 
     <a href="javascript: window.location.href = prevImage();"> <img border="0" src="Assets/Left.png" /></a> 
     <a href="javascript: window.location.href = nextImage();"> <img border="0" src="Assets/Right.png"/></a> 
+0

我建議通過linter/validator運行你的代碼 - 你會得到很多錯誤/警告。你的方法有很多錯誤 - 例如不要在href屬性中使用javascript - 使用javascript來更新href - (儘管如果你打算要求用戶做一個完整的頁面加載,爲什麼要使用js) – AD7six 2012-02-10 09:35:35

+0

我是使用javascript的新手,這是我的第一個項目。基本上我不知道其他的選擇。 – user1200640 2012-02-10 09:39:01

+0

從您的頁面首先應該首先運行_without_ javascript的角度開始。使用javascript來增強用戶體驗,如果你的js(或者他們的瀏覽器,儘管這裏不是這種情況)不能正常工作,那麼不要讓它們沒有任何東西。你也可以簡單地使用jquery,因爲它會爲你節省很多麻煩。 – AD7six 2012-02-10 09:51:48

回答

4

你應該做的是

<a href="#" id="prevImageControl"> 

,並在JavaScript塊做

prevImageClick = function() 
{ 
    window.location.href = prevImage(); 
} 

var prevImageControl = document.getElementById('prevImageControl'); 
prevImageControl.addEventListener('click', prevImageClick); 

重複的NEXTIMAGE()

+0

,因爲prevImageClick中沒有邏輯 - 它可以設置a.href,在加載時調用,不需要事件偵聽器。這將是最高效/可靠的解決方案。 – AD7six 2012-02-10 10:06:45

+0

1 - 你真的永遠不知道什麼時候會添加更多的代碼。我的圖片處理程序並不那麼簡單。 2 - 我向新手展示了當前接受的註冊事件處理程序的方法。 – 2012-02-15 15:12:16

+0

我很抱歉,但展示瞭如何更改鏈接的onclick的href,然後更改window.location不教授任何教授。 – AD7six 2012-02-15 16:58:26

0

您需要更改這些:

<a href="javascript: window.location.href = prevImage();"> <img border="0" src="Assets/Left.png" /></a> 
<a href="javascript: window.location.href = nextImage();"> <img border="0" src="Assets/Right.png"/></a> 

要的onclick事件。

<a href="#" onclick="javascript: window.location.href = prevImage();return false;"> <img border="0" src="Assets/Left.png" /></a> 
<a href="#" onclick="javascript: window.location.href = nextImage();return false;"> <img border="0" src="Assets/Right.png"/></a> 

或者更好的是,把它們放入函數中。

0

你有一個document.wrriteln雙R